發生此問題是因爲模糊事件在'data.country'中的值更新之前觸發,您可以使用下面的代碼來解決此問題。創建類似如下─
angular.module('app', []).directive('easyAutoComplete', function() {
return {
restrict: 'A',
require: 'ngModel',
priority: 1, // needed for angular 1.2.x
link: function(scope, elm, attr, ngModelCtrl) {
var options = {
url: "https://api.myjson.com/bins/1rjn5",
getValue: "country",
listLocation: "data",
list: {
match: {
enabled: true
},
onChooseEvent: function() {
scope.$apply(function() {
ngModelCtrl.$setViewValue($(elm).getSelectedItemData().country);
});
}
},
};
$(elm).easyAutocomplete(options);
}
};
});
然後用它像作爲指令 -
<input type="text" ng-model="data.country" easy-auto-complete ng-change="FindMaterialDetail(data.country)" id="Autocomplete">
你必須定義'data':'$ scope.data = {};' –
不解決問題,還是一樣。更新小提琴https://jsfiddle.net/zvezrg6j/2/ –
它只會顯示輸入值的類型,因爲當您從列表中選擇選項時,輸入字段失去了焦點與最後一個類型的值。在此操作之後,ngblur事件不會被觸發。 – rraman