ng-tags-input 没有按预期工作
ng-tags-input not working as desired
我在 angular project.But 中使用 ng-Input-tags,当我搜索关键字时,我的自动完成功能没有根据搜索结果进行更新。我检查了我的方法,它返回了正确的结果,但它们没有出现在自动完成的下拉列表中。
这是我的 html 代码:
<tags-input ng-model="selectedDrivers" display-property="name" replace-spaces-with-dashes="false" add-from-autocomplete-only="true" placeholder="Search by driver name or driver id.." on-tag-added="emptyScope()">
<auto-complete source="searchDriver($query)" debounce-delay="500"></auto-complete>
</tags-input>
这是我的 js 代码:
$scope.searchDriver = function(query) {
$scope.searchedResults = [];
for(var key in $scope.driversInfo){
if($scope.driversInfo[key].name.toLowerCase().indexOf(query.toLowerCase()) >= 0 || $scope.driversInfo[key].id.toString().indexOf(query.toString()) >= 0)
$scope.searchedResults.push($scope.driversInfo[key]);
}
return $scope.searchedResults;
};
suggestionList 不知为何没有更新。
自动完成的源属性正在等待承诺,因此您必须使用 $q。
let result: Array<any> = list.filter(
(elt: any) => { return elt[property].toLowerCase().indexOf(query.toLowerCase()) !== -1; });
deferred.resolve(result);
return deferred.promise;
我在 angular project.But 中使用 ng-Input-tags,当我搜索关键字时,我的自动完成功能没有根据搜索结果进行更新。我检查了我的方法,它返回了正确的结果,但它们没有出现在自动完成的下拉列表中。
这是我的 html 代码:
<tags-input ng-model="selectedDrivers" display-property="name" replace-spaces-with-dashes="false" add-from-autocomplete-only="true" placeholder="Search by driver name or driver id.." on-tag-added="emptyScope()">
<auto-complete source="searchDriver($query)" debounce-delay="500"></auto-complete>
</tags-input>
这是我的 js 代码:
$scope.searchDriver = function(query) {
$scope.searchedResults = [];
for(var key in $scope.driversInfo){
if($scope.driversInfo[key].name.toLowerCase().indexOf(query.toLowerCase()) >= 0 || $scope.driversInfo[key].id.toString().indexOf(query.toString()) >= 0)
$scope.searchedResults.push($scope.driversInfo[key]);
}
return $scope.searchedResults;
};
suggestionList 不知为何没有更新。
自动完成的源属性正在等待承诺,因此您必须使用 $q。
let result: Array<any> = list.filter(
(elt: any) => { return elt[property].toLowerCase().indexOf(query.toLowerCase()) !== -1; });
deferred.resolve(result);
return deferred.promise;