我正在搜索我的应用程序,我有搜索输入列出项目。
在这里,您可以看到在控制器中触发 runSearch()功能的输入。
<div class="item item-input">
<input type="search" placeholder="" ng-model="query" ng-change="runSearch()">
</div>
runSearch()函数运行一些搜索功能,将找到的项目添加到$ scope.results,这些结果以html格式打印。
LocalDB.getArchitects($scope.query).then(function (architects) {
// add architects to results ($scope.results)
});
LocalDB.getBuildings($scope.query).then(function (buildings) {
// add buildings to results
});
LocalDB.getCities($scope.query).then(function (cities) {
// add cities to results ($scope.results)
});
问题是,显示的结果会忽略输入中的最后一个字符。看起来ng-change触发器有点晚了,或者$ scope.query是一个字符迟到了。
阐释:
搜索输入为: ABCD
结果应该是: ABCD 某事
但实际结果是 ABC 某事
搜索输入中的最后一个字符(在这种情况下为 D )将被忽略。
答案 0 :(得分:0)
我已经通过向itemsToShow
添加结果然后每1秒刷新一次$scope.results
来解决了这个问题。
$interval(function () {
$scope.results = itemsToShow;
}, 1000);