【发布时间】:2016-03-03 04:13:14
【问题描述】:
我在我的自动完成 angularjs 指令上传递动态数据时遇到问题,该指令由 jquery-ui 自动完成组成。这是我当前的代码:
HTML:
<div ng-app="peopleApp">
<div ng-controller="indexController">
<label class="input-group-addon input-label">Search:</label>
<input class="form-control input-form" id="search" type="text" placeholder="Search here..." auto-complete names="names">
<button ng-click="change()">Change</button>
</div>
</div>
JS:
var peopleApp = angular.module('peopleApp', []);
peopleApp.controller('indexController', function($scope, $http, $rootScope, $controller){
$http.post(domainName+url)
.then(function(response){
data = response.data.data;
$scope.names = data.map(function(obj){ var rObj = []; rObj.push(obj['rank_code']); rObj.push(obj['rank_description']); return rObj; });
});
$scope.change = function(){
$scope.names = ["hnnnnn", "billlll"];
}
});
peopleApp.directive('autoComplete', function(){
return {
scope: {names: '='},
link: function(scope, element, attrs){
// alert(JSON.stringify(element));
attrs.$observe('names', function(val){
// scope.info = val;
alert(val);
scope.names = val;
});
element.autocomplete({
source: scope.names,
select: function() {
// alert('dean');
// iElement.trigger('input');
},
// Sets the min of characters before activating dropdown
minLength:2
});
}
}
});
首先,从 API 获取的数据不会集成到自动完成功能中。其次,我希望当我按下按钮时,将更改的 $scope.names 也将集成在自动完成中
【问题讨论】:
-
不要将来自
jquery的库与angular混合使用。原则上可以这样做,但有时更容易找到angular的库。像这样ngAutocomplete -
那么你有没有关于源是动态的解决方案?
-
动态源使用的解决方案存在。例如angular strap typeheads.
-
你能提供一个代码吗?因为我很确定这是可以做到的。只是我对这个 angularjs 很陌生
-
您看到链接了吗?有很好的例子。
标签: javascript jquery angularjs jquery-ui autocomplete