我创建了一个应用程序,其中我有一个列表显示联系人和搜索栏,当用户在搜索中键入任何文本时,列表会根据它进行过滤并且按预期工作。但是如果用户选择搜索item并执行一些操作并回到同一个列表,列表应该显示值(他在搜索框中键入的关键字)以及过滤结果。但实际发生的是当我回到列表页面后某些操作显示所有结果而不是过滤结果。是否有任何可能的方法显示过滤结果,即使我们在从列表中选定的项目执行某些操作后返回到同一页面。
<ion-content class="p-l-10 p-r-10 had-header kp-list" scroll="false">
<div>
<div class="list nodata" ng-if="vm.farmers.length === 0">
<h4><p>{{"nodatatoshow_message" | translate}}</p></h4>
</div>
<div class="list list-inset search_box m-t-10 m-r-10 m-l-10" ng-if="vm.farmers.length !== 0">
<label class="item item-input search_cont"> <i class="icon ion-search placeholder-icon"></i>
<!-- <input type="text" placeholder="search..." ng-model="vm.search"> -->
<input type="text" placeholder="search..." ng-model = "vm.search" ng-change="vm.getUsersByName(vm.search)">
</label>
</div>
</div>
<ion-scroll direction="y" style="height: 100%; margin-top: -5px">
<!-- Option to handle no list -->
<div>
<ion-list class="trans-item ">
<div class="FramerList list" ng-repeat="farmer in vm.farmers" ng-click='vm.gotoFarmerDetail(farmer)'>
<a class="item item-avatar" href="#">
<img src="main/assets/images/profile-pic.jpg">
<h2>{{farmer.name | limit }}</h2>
<h3>{{farmer.mobile_no}}</h3>
</a>
</div>
</ion-list>
<ion-infinite-scroll
on-infinite="vm.loadMore()"
ng-if="!vm.moreData"
distance="10%">
</ion-infinite-scroll>
</div>
</ion-scroll>
控制器:
function activate () {
Analytics.trackPage('Farmer-List-Page');
vm.farmers = [];
vm.totalcount = [];
vm.moreData = false;
DB.getContact('contacts', limit, offset, 'Farmer').then(function (result) {
for (var i = 0; i < result.rows.length; i++) {
$log.log('result of selected farmer', result);
vm.farmers.push(result.rows.item(i));
}
$log.log('vm.farmers: ', vm.farmers);
}, function (err) {
$log.log('err', err);
});
Contact.get(['Farmer']).then(function (resp) {
$log.log('resp...', resp);
vm.totalcount = resp.length;
$log.log('vm.farmers totalcount: ', vm.totalcount);
$log.log('vm.farmers totalcount: ' + JSON.stringify(vm.totalcount));
});
}
答案 0 :(得分:0)
除非您以任何方式禁用了view caching功能,否则这应该可以正常工作 您希望它被启用。您可能需要检查以下内容:
cache: false
属性来禁用视图缓存。如果已设置,则要删除此属性。cache-view="false"
元素上添加ion-view
属性来禁用模板中的视图缓存。如果已设置,则要删除此属性。