angularjs为ng-keydown添加逻辑

时间:2013-04-23 11:27:41

标签: angularjs

我正在使用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中检查搜索长度吗?

1 个答案:

答案 0 :(得分:6)

简短回答:不。

答案很长:ngKeydown指令期待Angular Expression,而不是JavaScript。 Angular Expressions不支持条件:

  

无控制流程语句

     

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