0

このjsfiddle(別の質問から)のものに基づいて、角度のあるチェックボックスフィルターを使用しています。http://jsfiddle.net/rzgWr/502/

デフォルトのチェックボックスを使用したくないので、次のように jquery を使用して 2 つの div をチェックボックスに「リンク」しました。

var toggleVar = 0;
$("#check-1").bind('click', function() {
    if(toggleVar % 2 == 0) {
        $(".check-item:first-child input").prop('checked', true);
    }
    else {
        $(".check-item:first-child input").prop('checked', false);
    }
    toggleVar++;
});
});

私のjqueryはhtmlで正しく動作し、ボックスをチェックしますが、Angularモデルは変更を検出せず、フィルタリングされた出力を更新するためにそれ自体を「リフレッシュ」(ダイジェスト?)できません(コンテキストについてはjsfiddleを参照してください)。

angularモデルがクリックを検出するか、チェックボックスのステータスでjqueryによる変更を検出するようにするには、何を追加する必要がありますか? jquery ファイルまたは angular コントローラーに変更を書き込みますか?

jquery と angular を使用するのは面倒だと思います。角度のみのオプションがあれば教えてください。

4

1 に答える 1

1

特定の例では、ゴールを正しく取得した場合、チェックボックスをトリガーする必要があるすべてのコードをlabel. そうすれば、チェックボックスが自動的にチェックされます

<label><input type="checkbox" ng-model="usePants[pants]"/><b>{{pants}}</b></label>

「トリガー」 div がより切断されている場合のより一般的なアプローチは、内部のデータ フィールド自体を更新することですng-click(例: usePants[pants] = !usePants[pants])。唯一の注意点は、Propagation を停止しない限り、含まれている div または bold 要素にバインドできないことです。そうしないと、チェックボックス自体をクリックすると二重に起動します。ここでの代替手段は、余分なスパンを使用するかb、入力が含まれないように要素を移動することです。

<input type="checkbox" ng-model="usePants[pants]"/><b ng-click="usePants[pants]= !usePants[pants]">{{pants}}</b>

フィドル

もちろん、私は質問を完全に誤解しているかもしれません。これは、チェックボックスの横にあるテキストをクリックすると、両方のチェックボックスが更新され、angularisjs フィルタリングがトリガーされることを前提としています。

于 2015-09-14T16:52:26.097 に答える