我正在尝试编写一个自动完成指令,该指令使用 $http 请求(不使用任何外部插件或脚本)从服务器获取数据。目前它仅适用于静态数据。现在,我知道我需要将我的 $http 请求插入到source:
指令中,但是我找不到任何关于该主题的好的文档。
http请求
$http.post($scope.url, { "command": "list category() names"}).
success(function(data, status) {
$scope.status = status;
$scope.names = data;
})
.
error(function(data, status) {
$scope.data = data || "Request failed";
$scope.status = status;
});
指示
app.directive('autoComplete', function($timeout) {
return function(scope, iElement, iAttrs) {
iElement.autocomplete({
source: scope[iAttrs.uiItems],
select: function() {
$timeout(function() {
iElement.trigger('input');
}, 0);
}
});
};
});
看法
<input auto-complete ui-items="names" ng-init="manualcat='no category entered'" ng-model="manualcat">
那么,我如何以 Angular 的方式正确地将这一切拼凑在一起呢?