NgInputTags自动完成功能未显示我的结果

时间:2017-04-20 11:07:36

标签: javascript angularjs ng-tags-input

您好我正在使用下面的ng-input-tags是我的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:无法读取属性&#39;数据&#39;未定义的。我的控制器文件看起来像这样

$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
  }
}

1 个答案:

答案 0 :(得分:0)

您的getAvailableTag必须返回一个值以提供给自动填充,可以是数组或承诺:

$scope.getAvailableTag = function($query){
    return MyTasksService.getAvailableTags($query).then(function(response){
        $scope.data = response;
        return response; // This is important!
    },function(reject){});
}

您可以在this page上找到有关自动填充指令的更多信息。

相关问题