【问题标题】:NgInputTags autocomplete is not showing my resultsNgInputTags 自动完成没有显示我的结果
【发布时间】:2017-04-20 11:07:36
【问题描述】:

您好,我正在使用 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>

当我在输入中单击时,我得到一个控制台错误类型错误:无法读取未定义的属性“数据”。我的控制器文件是这样的

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

【问题讨论】:

  • 你能创建一个 plunker 来重现你的问题吗?

标签: javascript angularjs ng-tags-input


【解决方案1】:

您的 getAvailableTag 必须返回一个值以供自动完成,该值可以是数组或承诺:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多