2017-08-24 41 views
1

我创建了一个应用程序,其中有一个列表,显示联系人和搜索栏,当用户在搜索中输入任何文本时,该列表将根据它和预期的一样。但如果用户选择搜索到的项目并执行一些操作并返回到同一个列表,那么列表应该显示值(他在搜索框中键入的关键字)以及过滤后的结果。但是实际发生的事情是当我做了一些操作后回到列表页面时,它显示了所有结果而不是过滤结果。 即使我们在从列表中选择的项目执行某些操作后回到同一页面,是否有任何可能的方式来显示过滤结果。如何在用户回到ionic1时再次显示搜索结果

<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

这应该工作,只要你想,除非你已禁用以任何方式view caching功能。
您希望启用它。您可能要检查下列事项:

  1. 检查你的状态路由代码,因为它可以通过增加cache: false属性,以停用视图缓存。如果已设置,您希望删除此属性。
  2. 可以通过在ion-view元素上添加cache-view="false"属性来禁用模板中的视图缓存。如果设置了此属性,则要删除该属性。
  3. 检查您的应用程序配置部分,这是可能的disable view caching globally
相关问题