2013-04-23 78 views
3

我在輸入框中輸入文本時使用ng-keydown指令調用搜索功能。我想防止調用搜索功能如果搜索字符串的長度小於3angularjs爲ng-keydown添加邏輯

我做這樣說:

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

,並在控制器:

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

好吧,這有效,但是可以直接在屬性ng-keydown中檢查搜索長度嗎?

回答

6

簡短的回答:第

長的回答是:ngKeydown指令期待一個Angular Expression,JavaScript不。角表達式不支持條件句:

無控制流語句

你不能寫在一個表達式流程控制語句。背後的原因是Angular哲學的核心,即應用邏輯應該在控制器中,而不是在視圖中。如果您需要條件語言,循環語句或從視圖表達式中拋出,請將其委託給JavaScript方法。

+0

好吧,這很有道理。謝謝。 – Sam 2013-04-23 13:29:57