3

テキストが入力ボックスに入力されたときに検索機能を呼び出すために ng-keydown ディレクティブを使用しています。検索文字列の長さが 3 未満の場合、検索関数の呼び出しを防止したいと考えています。

私はこのようにしています:

 <input type="text" ng-keydown="filter()" ng-model="query">

そしてコントローラーで:

$scope.query;
$scope.filter = function () {
  if ($scope.query.length > 3)
    $scope.search()
}

わかりました、それは機能しますが、属性 ng-keydown で直接検索の長さをチェックすることは可能ですか?

4

1 に答える 1

6

簡単な答え: いいえ。

長い答え:ngKeydownディレクティブはJavaScript ではなくAngular Expressionを期待しています。Angular Expressions は条件をサポートしていません:

制御フロー ステートメントがない

制御フロー ステートメントを式で記述することはできません。この背後にある理由は、アプリケーション ロジックはビューではなくコントローラーにある必要があるという Angular の哲学の核心です。条件式、ループ、またはビュー式からのスローが必要な場合は、代わりに JavaScript メソッドに委譲します。

于 2013-04-23T13:22:30.240 に答える