私はhttp://angular-ui.github.com/bootstrap/のアコーディオン・ディレクティブを使用しています。アコーディオンを開閉するタイミングをより詳細に制御する必要があります。角度アコーディオンをプログラムで制御するにはどうすればよいでしょうか?
より正確には、親アコーディオンを閉じて次のアコーディオンを開くボタンが必要です(close-othersがtrueに設定されている場合、次のヘッダーをクリックすると基本的には同じようになります)。 アコーディオンを閉じ、次のアコーディオンを開くことを許可する前に、いくつかの検証を行う必要があります。また、これをアコーディオンヘッダーのクリックイベントまで配線する必要があります。
私はかなり新しく、私たちは現在、Backbone + JQueryからAngularにアプリケーションを書き直しています。バックボーン版では、Twitter Bootstrapアコーディオンを使用していましたが、JQueryを使用してそれらを開閉していました。私たちはこれをやり続けることができますが、JQueryのDOM操作を完全に取り除いて、純粋な角度の解決策を探しています。私は検証の観点で行うことを試みた何
は
<accordion-group ng-click="close($event)">
で、私のコントローラで
event.preventDefault();
event.stopPropagation();
これは明らかにDOM要素として動作しませんでしたがディレクティブと置き換えられますクリックハンドラは決して追加されません。私はソースコードを見てきました(そして、文書化されていない機能がいくつか見つかりました)が、この特定の課題をどこから解決するのかについては悩んでいます。私はangle-uiをフォークすることを検討していましたが、この機能をアコーディオン・ディレクティブに追加しようとしましたが、これをもっとうまくいくディレクティブに変更することなく達成できればと思います。
ありがとうございます、私のボタンが必要なように機能しています。しかし、私の他の質問は、どのように私は2番目のアコーデオンを(基本的にそれが拡大されないように)切り替えることを許可する前にいくつかの種類の検証を行うことについて行くだろう。 ボタンで動作するようにplunkを変更しました:http://plnkr.co/edit/J5hnuA?p=preview しかし、ヘッダーをクリックして2番目のアコーディオンを開くことができないのかどうかは疑問でした同じように? – ivarni
(私のおしゃべりでは#1のチェックボックスにチェックを入れていないのにボタンをクリックしてアコーディオン#2を切り替えることはできませんが、ヘッダをクリックして#2を開くことができます) – ivarni
開けないうちにテンプレート内のクリックハンドラがng-click = "isOpen =!isOpen"と表示しているので、新しいアコーディオンが表示されます – ivarni