私は現在、検索ボックスの値であるモデルを持っています。検索操作は完全に実行されていますが、検索テキストが変更されたときにもう1つの機能が実行されるようにしたいと考えています。だから私はlistener
またはwatch
モデル変数を追加したいと思います。どうしたらいいですか?angularjsのモデルにリスナーを追加する
18
A
答えて
38
あなたのユースケースをカバーするために2つのオプションを持っている:changeHandler
がある
Search: <input ng-model="search.model" ng-change="changeHandler()">
:
は、あなたがそうのように、あなたの入力を書くことができng-changeディレクティブ
を使用しますスコープに定義された関数。
は、あなたのコントローラに書き込むことによって、スコープ
に時計を使用します。
$scope.$watch('search.model', function(newVal, oldVal){
console.log("Search was changed to:"+newVal);
$scope.search.watch = newVal;
});
ここで働いているの両方を示すplunk:http://plnkr.co/edit/Jgb2slcBFzLNKK0JFNyo?p=preview
を2つのアプローチの違いはということですng-change
は、ユーザ入力の反復の結果としてのみ発火し、$watch
は、モデル突然変異に対して起動します。入力制御、またはモデルへの他の変更が含まれます。したがって、反応させたいイベントを正確に選択することができます。
+1
ところで、これは 'ngModel'値に' $ watch'を使うのは良い習慣ではないことを理解しました。私が読んだところによると、 '$ watch'は本質的にスコープリスニングに専念していますが、ngChangeは' ngModel'の変更を聞いていますが、誤解されるかもしれません。 –
関連する問題
- 1. AngularJS。特定のモデルに$ watchを追加する
- 2. leftBarButtonItemにリスナーを追加
- 3. AngularJs:モデルに基づいてクラスを追加する
- 4. ListViewにリスナーを追加する
- 5. キャンバスポイントにリスナーを追加する
- 6. 数字ピッカーウィジェットにリスナーを追加する
- 7. 条件にリスナーを追加する
- 8. ログイン前にリスナーを追加する
- 9. リスナーをJPanelに追加する
- 10. エディタグリッドパネルにリスナーを追加する
- 11. flex + papervisionでDAEモデルをインタラクティブ(リスナーを追加)
- 12. クロムカスタムタブにリスナーを追加閉じるボタン
- 13. オブジェクトプロトタイプにリスナーを追加します
- 14. ArrayListにリスナーを追加します
- 15. モデルにモデルを追加する
- 16. 多くのボタンにリスナーを追加リソース
- 17. jpopupmenuリスナーを追加する場所
- 18. CKEditor selectPageリスナーを追加する方法
- 19. は、ページリフレッシュイベントにリスナーを追加し
- 20. Angular4でAmchartsにリスナーを追加
- 21. 変更リスナーをマーカーに追加
- 22. AngularJSのスコープにjsonを追加する
- 23. SimGrid。 masterworkerモデルに追加のパラメータを追加するには?
- 24. コンボボックスのJavaにリスナーを追加するには
- 25. Ionic 2、Googleマップのマーカにリスナーを動的に追加する
- 26. xmppリスナーをアンドロイドのサービスに追加するには?
- 27. Hibernateのデータベース変更にリスナーを追加するには?
- 28. 別のモデルにインスタンスを追加する
- 29. ui5のイベント登録 - 複数のリスナーをイベントに追加する
- 30. extjsのチェックボックスグループの各チェックボックスにリスナーを追加する方法
jqueryを使用していますか? – SteveP
@SteveP No. jqueryを使用していません。 – Rahul