21

私は現在、検索ボックスの値であるモデルを持っています。検索操作は完璧に実行されていますが、検索テキストが変更されたときに実行されるさらに別の機能も必要です。だから私はモデル変数listenerを追加したい。watchどうすればいいですか?

4

1 に答える 1

44

ユースケースをカバーする 2 つのオプションがあります。

ng-changeディレクティブを使用する

入力は次のように記述できます。

Search: <input ng-model="search.model" ng-change="changeHandler()">

ここで、changeHandlerはスコープで定義された関数です。

スコープでウォッチを使用する

コントローラーに次のように記述します。

$scope.$watch('search.model', function(newVal, oldVal){
    console.log("Search was changed to:"+newVal);
    $scope.search.watch = newVal;
  });

両方を説明する作業プランクを次に示します

2 つのアプローチの違いは、ng-changeユーザーが入力を反復した結果としてのみ起動するのに対し$watch、入力コントロールまたはモデルへのその他の変更からトリガーされたモデル ミューテーションに対して起動することです。そのため、反応したいイベントを正確に選択できます。

于 2013-03-02T14:06:34.577 に答える