我正在使用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中检查搜索长度吗?
答案 0 :(得分:6)
简短回答:不。
答案很长:ngKeydown
指令期待Angular Expression,而不是JavaScript。 Angular Expressions不支持条件:
无控制流程语句
您无法在表达式中编写控制流语句。这背后的原因是Angular哲学的核心,即应用程序逻辑应该在控制器中,而不是在视图中。如果您需要条件,循环或从视图表达式抛出,请转而委托JavaScript方法。