下面是我想要自动完成功能的输入框:
f()
angularJS指令 -
<input auto-complete-user ng-hide="searchFilter.AssignedToAnyOne" ng-model="searchFilter.FilterByUser"
placeholder="Name / Company name" type="text" id="txtFilterUser"
class="filterUser form-control input-sm" />
自动完成工作正常,但是一旦我从列表中选择了一个选项,自动完成功能再次触发,从而再次提示我选择的项目非常烦人。但是,当我删除BTWebApp.directive('autoCompleteUser', function ($timeout) {
if (localStorage[1] != undefined) {
return function (scope, iElement, iAttrs) {
iElement.autocomplete({
source: JSON.parse(localStorage[1]),
select: function () {
$timeout(function () {
iElement.trigger('input');
}, 0);
}
});
};
}});
时,它工作正常,但模型没有更新。
在我的代码中使用它之前我引用了这个jsFiddle,问题只发生在我在我的项目代码中使用它时,它在jsFiddle中运行得非常好。我不知道我在这里缺少什么。这与bootstrap或使用localstorage有关吗?因为这是我在代码和jsFiddle之间找到的唯一区别。请帮忙。
答案 0 :(得分:0)
这不是本地存储http://jsfiddle.net/leewinter/gxvsqkuy/2/也许可以在小提琴中试试你的例子,看看它是否可以复制?
angular.module('MyModule', []).directive('autoComplete', function($timeout) {
var testObject = { 'one': 1, 'two': 2, 'three': 3 };
localStorage.setItem('testObject', JSON.stringify(testObject));
if (localStorage.getItem('testObject') != undefined) {
return function(scope, iElement, iAttrs) {
iElement.autocomplete({
source: scope[iAttrs.uiItems],
select: function() {
$timeout(function() {
iElement.trigger('input');
}, 0);
}
});
};
}});
您使用的是IOS吗?可以尝试以下solution
$("#input").autocomplete({
open: function(event, ui) {
$('.ui-autocomplete').off('menufocus hover mouseover mouseenter');
}});