Ng-Repeat 在页面刷新之前不更新

Ng-Repeat not updating until page is refreshed

简要介绍一下我的工作:

这个应用程序是一个电话簿,可以调用我们的后端系统和 returns 一个 JSON 负载,然后解析并存储到本地存储以供离线访问,然后数据反映在一个简单的主屏幕格式。

给个简单的工作流程:

  1. 用户登录
  2. 通过 Ajax 请求调用后端是在用户帐户下进行的
  3. 数据存储到本地存储
  4. 数据已添加到 $rootScope.allEmployeeInformation 变量
  5. Ion-List 反映存储在主屏幕上的 $rootScope.allEmployeeInformation 变量中的数据。

我的问题出在这里:

登录后,数据被正确提取和存储,但 Ion-List 不会显示数据,直到通过我已经实现的拉刷新功能、重新同步按钮或​​重新启动应用程序刷新页面.

有什么办法可以保证这些数据在用户不刷新页面的情况下显示出来?

非常乐意提供更多需要的信息。谢谢大家的帮助!

编辑,根据要求更新一些代码:

Code which performs the ajax request

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: 我相信我已经缩小到实际上是 ng-repeat 的问题,而不是我乍一看的 Ion-List 问题。更新参考标签。

干杯! 麦克

在看不到任何代码的情况下,您也可以尝试在路由配置中设置 cache: false。请参见下面的示例:

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

如果您有任何可用的代码post,我可能会提供更多帮助。

编辑 为什么需要使用 $rootscope?您还应该尝试使用 $scope,因为如果您想在另一个视图或控制器中使用它,您将始终可以访问 localStorage 中的员工信息。

非常简单 - 您正在使用 jQuery 的 $.ajax,并且不会触发摘要循环。摘要循环告诉 Angular 更新和 2 路绑定本质上(简化)。使用提供的 Angular $http 模块。

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

});

此外,您在代码末尾调用 location.reload() - 这将删除您到目前为止所做的任何客户端更改。你可能不需要那个。