2017-04-20 80 views
0

你好我下面NG-输入标签的工作是我的html代码:NgInputTags自动完成未显示我的结果

<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 
    } 
} 
+0

你可以创建一个重新生成你的问题? – tanmay

回答

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自动完成指令的详细信息。