你好,我正在使用下面的ng输入标签,是我的html代码:
<tags-input on-tag-removed="removeTag(modaltask,$tag)" id="modaltask-tags-{{modaltask.id}}" display-property="tag" class="form-control" ng-model="modaltask.tags">
<auto-complete source="getAvailableTag($query)" min-length="0" load-on-focus="true" load-on-empty="true" max-results-to-show="32" ></auto-complete>
</tags-input>
当我单击输入时,我将获得一个控制台errortypeerror:无法读取未定义的属性"数据"。我的控制器文件看起来像这样
$scope.getAvailableTag = function($query){
MyTasksService.getAvailableTags($query).then(function(response){
$scope.data = response;
},function(reject){});
}
和我的服务JS文件
this.getAvailableTags = function(value) {
var deferred = $q.defer();
$http.get(THE URL...).success(function(data) {
deferred.resolve(data.availableTags);
}).error(function(data, status) {
ErrorService.raiseError(data, status);
deferred.reject(data);
});
return deferred.promise;
};
API调用正常工作,并且正在返回数据。以格式
availableTag: {
{
id: 1,
tag: test
}
}
您的 getAvailableTag
必须返回一个值以馈送到自动完成,这可以是数组或承诺:
$scope.getAvailableTag = function($query){
return MyTasksService.getAvailableTags($query).then(function(response){
$scope.data = response;
return response; // This is important!
},function(reject){});
}
您可以在此页面上找到有关自动完成指令的更多信息。