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指令需要一个Angular Expression,而不是 JavaScript。Angular 表达式不支持条件:

没有控制流语句

您不能在表达式中编写控制流语句。这背后的原因是 Angular 哲学的核心,即应用程序逻辑应该在控制器中,而不是在视图中。如果您需要条件、循环或从视图表达式中抛出,请改为委托给 JavaScript 方法。

于 2013-04-23T13:22:30.240 回答