0

我有一個帶有兩個函數的typeahead字段可以觸發。一個應該模糊,這是該領域的驗證。另一個應該是用戶類型,這是功能uib-typeahead使用。輸入字段上的兩個函數調用,一個onBlur和一個不在角度上

現在我正在使用ng-model-options="{ updateOn: 'blur' }",但隨着用戶輸入它不會觸發預先輸入。

有沒有辦法使驗證函數觸發onBlur和typeahead觸發器正常?

例如,我調用一個指令號碼驗證,我想調用blur。然後在typeahead我想調用triggerfunction作爲用戶類型。

      <input 
          number-validation 
          type="text" 
          maxlength="10" 
          class="form-control input-sm" 
          ng-model="number" 
          ng-change="number.elsewhere = null" 
          required 
        uib-typeahead="number for number in triggerfunction($viewValue)" 
        typeahead-template-url="/template.html" 
        typeahead-loading="Loadinglocations" typeahead-on-select="SelectFunction($item, 1)" typeahead-wait-ms="3" 
        typeahead-min-length="3"> 

回答

1

觸發事件爲「模糊」,可以用「NG模糊」。對於輸入提示功能,請使用「ng-keyup」。

下面是一個例子的小提琴......

https://jsfiddle.net/eh2morxb/

而且,這裏的代碼...

<input type="text" ng-model="inputText" ng-blur="blurHandler()" ng-keyup="typeAhead()" placeholder="Type something..."> 

angular.module("myApp", []).controller("myController", ["$scope", function($scope) { 
    $scope.inputText = ""; 
    $scope.typeAheadMessage = ""; 
    $scope.blurMessage = ""; 

    $scope.blurHandler = function() { 
    $scope.blurMessage = "Perform input validation on " + $scope.inputText; 
    }; 

    $scope.typeAhead = function() { 
    $scope.typeAheadMessage = "Perform type-ahead lookup on " + $scope.inputText; 
    }; 
}]) 
+0

這個句柄是否會調用一個指令?我已更新我的問題以提供示例。 – jenryb

+0

這取決於指令。你實際上不會調用指令,它們會根據它們的設計方式進行操作。在自定義驗證指令的情況下,您需要將其綁定到$ parsers集合。 Angular負責其餘部分。 – WonderGrub

+0

我已經有一個工作的自定義驗證,並且我想讓它觸發onBlur。這可以使用ng-model-options,但顯然不適用於ng-blur。將它綁定到$ parsers將無濟於事,因爲只要用戶更改值,就會調用$ parser。 – jenryb

相關問題