绑定一次但允许刷新整个项目的有效方法

Mik*_*378 5 javascript performance angularjs bindonce

让我们假设无限滚动显示的 1000 个项目的列表。

每个项目显示:一个人的名字、姓氏和心情。(为了简单起见)

最初,我不想听更新。
所以伟大的angular-bindonce指令甚至更好:angular 1.3 one-binding 特性成功了。

现在,我创建了一个下拉刷新组件,允许刷新整个项目。
但是,作为一次绑定(而不是重新加载页面),我的整个列表没有考虑更新。

使用 angular-bindonce,我目前有这个:

<div bindonce ng-repeat="person in persons track by person.id">
  <span bo-text="person.firstName"></span>
  <span bo-text="person.lastName"></span>
  <span bo-text="person.currentMood"></span>
</div>
Run Code Online (Sandbox Code Playgroud)

下拉刷新触发此功能:

$scope.refresh() {
    Persons.getList(function(response)) {
      $scope.persons = response.data;  //data being an array
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是:

有没有办法仅在触发下拉刷新时刷新所有数据?
在这种情况下,我将能够保持这种单一绑定,这将在处理大量人员列表时大大提高性能。

到现在为止,我不得不……使用双向绑定,这是 Angular 工作的自然方式。

更一般地说,如何处理只有在触发某些事件时才需要更新的无限滚动的巨大列表?

ale*_*dro 0

refresh-on指令可以解决这个问题,在这里找到了参考:

<div bindonce="persons" refresh-on="'refresh'" ng-repeat="person in persons track by person.id">
  <span bo-text="person.firstName"></span>
  <span bo-text="person.lastName"></span>
  <span bo-text="person.currentMood"></span>
</div>
Run Code Online (Sandbox Code Playgroud)