2017-08-24 6 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> 

コントローラ:あなたはどのような方法でview caching機能を無効にしている場合を除き

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

これは、あなたが望むように動作するはずです。
有効にする必要があります。あなたは次のことをチェックすることをお勧めします:

  1. それはcache: falseプロパティを追加することによって、ビューのキャッシュを無効にすることも可能なので、あなたの状態のためのルーティングコードを確認してください。このプロパティが設定されている場合は削除します。
  2. 属性をion-view要素に追加することで、テンプレートの表示キャッシュを無効にすることができます。この属性が設定されている場合は削除します。
  3. アプリの設定セクションを確認してください。可能であればdisable view caching globallyです。
関連する問題