我使用AngularJS实现了jQuery自动完成功能。
app.directive("autoComplete", function ($timeout) {
return {
restrict: "A",
link: function (scope, element) {
var location = ["OMAHA, NE", "OMAHA, TX", "DALLAS, TX", "DALLAS, NE"];
element.autocomplete({
source: location,
autoFocus: true,
delay: 0,
minLength: 3,
select: function () {
$timeout(function () {
element.trigger("input");
}, 0);
}
});
}
}
});
之前,从下拉列表中选择的自动填充值无法传递到ngModel
(JSFiddle example)。然后我添加了element.trigger("input");
,一切正常(在Chrome或Firefox中)。
然而,问题仍然存在于IE中(我使用的是IE 11)。当使用"输入"从下拉列表中选择自动完成值时或"左键单击"或者" Tab",它不能传递给ngModel
。所以原因是element.trigger("input");
不知何故在IE中不起作用。
感谢任何帮助。谢谢!
答案 0 :(得分:1)
解决方案是:
select: function() {
$timeout(function() {
//Assign the selcted value to ngModel: scope.<ngModelValue> = <selectedValue>;
}, 0);
}