Предположим, что список из 1000 элементов отображается с бесконечной прокруткой.Эффективный способ привязки один раз, но позволяющий обновить все элементы.
Каждый элемент отображает: имя первого лица, lastName и настроение. (чтобы сделать его простым)
Первоначально я не хотел слушать обновления.
Так что отличная директива angular-bindonce или даже лучше: угловая 1.3 односвязная функция сделала трюк.
Теперь я создал компонент pull-to-refresh, позволяющий обновить все элементы.
Однако, как привязка один раз (и не перезагрузка страницы), весь мой список не принимал обновления в учетной записи.
Используя угловой-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>
Притяжение к обновлению вызывает эту функцию:
$scope.refresh() {
Persons.getList(function(response)) {
$scope.persons = response.data; //data being an array
}
}
вопрос:
Есть ли способ обновлять все данные ТОЛЬКО при срабатывании pull-to-refresh?
В этом случае я мог бы сохранить эту привязку, которая значительно повысила бы производительность при работе с огромными списками лиц.
До сих пор я вынужден ... использовать двустороннюю привязку, естественный способ угловых работ.
В более общем плане, как иметь дело с огромными списками с бесконечной прокруткой, которые необходимо обновлять только при срабатывании некоторых событий?
http://blog.thoughtram.io/angularjs/2014/10/19/exploring- angular-1.3-ng-model-options.html интересно ... – Mik378
вам нужно отслеживать person.id? если вы удаляете трек, нормальный привязку один раз. {::} синтаксис работает отлично – chrismarx
Как и @chrismarx, рекомендуется изменить с дорожки на индекс $ index на мой собственный уникальный идентификатор, кажется, работает – Ladmerc