0

私が取り組んでいることの簡単な要約を与えるには:

このアプリは、バックエンド システムを呼び出して JSON ペイロードを返す電話帳です。JSON ペイロードは解析され、オフライン アクセス用にローカル ストレージに保存されます。データは単純なホーム画面形式に反映されます。

簡単なワークフローを提供するには:

  1. ユーザーのログイン
  2. Ajax リクエストを介したバックエンドへの呼び出しは、ユーザーのアカウントで行われます
  3. データはローカルストレージに保存されます
  4. $rootScope.allEmployeeInformation 変数にデータが追加されます
  5. Ion-List は、ホーム画面の $rootScope.allEmployeeInformation 変数に格納されたデータを反映します。

私の問題はここにあります:

ログイン後、データは適切にプルされて保存されますが、実装したプルツーリフレッシュ機能、再同期ボタン、またはアプリの再起動によってページがリフレッシュされるまで、Ion-List にはデータが表示されません。

ユーザーがページを更新しなくても、これらのデータが確実に表示されるようにする方法はありますか?

必要な情報を提供させていただきます。助けてくれてありがとう!

編集、要求に応じていくつかのコードで更新:

ajax リクエストを実行するコード

情報を表示する HTML:

<ion-view> 
<ion-content class="scroll-content has-header animated fadeIn" ng-controller="HomeScreenController" padding="true">
<ion-refresher
pulling-text="Pull to resync...."
on-refresh="resyncEmployees(true)">
</ion-refresher>
<ion-list>
<ion-item
class="ion-item-content"
ng-repeat="employee in allEmployeeInformation | orderBy:'lastName'"
ng-controller="AccountCtrl"
ng-click="changeTabb(1, {{employee.identifier}})">

<div class="item-icon-left">
<i class="icon ion-person"></i>
<h3>{{employee.userCN}}</h3>
<h5>{{employee.title}}</h5>
<h6>{{employee.town}}</h6>
</div>

<div class="item-icon-right">
<i class="icon ion-chevron-right icon-accessory"></i>
</div>

</ion-item>
</ion-list> 
</ion-content>
</ion-view>

編集#2:一見すると予想したように、Ion-Listではなくng-repeatの問題であるという事実に絞り込んだと思います。参照タグを更新します。

乾杯!マイク

4

2 に答える 2

4

とても簡単です。jQuery を使用$.ajaxしていて、ダイジェスト サイクルをトリガーしません。ダイジェスト サイクルは、基本的に Angular に更新と 2 方向バインドを指示するものです (馬鹿げています)。提供されている Angular$httpモジュールを使用します。

$http.get(agent).then(function(response) {

});

また、コードの最後で呼び出しlocation.reload()ています。これにより、これまでに行ったクライアントの変更が取り除かれます。あなたはおそらくそれを必要としません。

于 2016-09-08T14:17:56.627 に答える
0

コードを表示せずcache: falseに、ルート構成で設定を試すこともできます。以下の例を参照してください。

.state('dashboard', {
  cache: false,
  url: '/dashboard',
  views: {
    'menuContent' : {
      templateUrl: 'templates/dashboard.html',
      controller: 'DashboardController',
    }
  }
})

投稿できるコードがあれば、もっとお手伝いできるかもしれません。

編集 なぜ使用する必要があるの$rootscopeですか? $scope別のビューまたはコントローラーで使用する場合は、localStorage の従業員情報に常にアクセスできるため、代わりに使用することもお勧めします。

于 2016-09-07T19:46:35.243 に答える