0

У меня небольшая проблема. У меня есть загрузочный таблеток в приложении angularjs. Вкладки частично генерируются из ng-repeat и содержат данные, привязанные к области.Как перезагрузить данные области угловой области без предварительного просмотра перерисовки

В основном, в контроллере:

$scope.data = { ... } // Loaded from a factory 

Теперь, когда я перезагрузить эти данные (путем замены старого на новый) в tabset будет восстановлен нг-повтора и вид будет автоматически переключаться на первую вкладку.

Есть ли способ заменить данные в области без восстановления всего в представлении?

ответ

2

Вы не указали конкретные данные и какие из них используются каким образом. Так что это должен быть общий ответ:

Попробуйте обновить только те биты, которые фактически были изменены. Например, не заменяйте целые объекты или массивы, а только обновленные свойства или индексы, которые фактически изменились. Таким образом обновятся только соответствующие части графического интерфейса.

Если вы должны заменить объекты, вы можете помочь угловым сохранить связь между объектами в модели и элементами dom для ng-repeat, если вы используете «track by» в выражении (что возможно только в том случае, уникальный идентификатор, который вы можете использовать для этого).

Другой вариант: Используйте один раз для связывания деталей, которые должны изменить только один раз, когда данные сначала загружаются: Смотрите раздел «Одноразовый связывания» в https://docs.angularjs.org/guide/expression

+0

Yaaa ... То не так просто. Я не могу обновить только одну часть, так как ямка могла бы измениться. И одноразовая привязка отключит ** все ** дальнейшие обновления для содержащихся данных - правильно? – mvmoay

+0

Да, все обновления будут отключены с привязкой времени. О, и что, возможно, также поможет: Если вы не можете избежать появления новых объектов (в отличие от оставления неизмененных объектов в одиночку), используйте «track by» в любом ng-повторе, так что угловой может знать, к какому объекту принадлежит который является элементом dom и избегает переустановки вкладок. –

+0

Бам, трек сделал трюк. Спасибо за вашу помощь! :-) – mvmoay

Смежные вопросы