Биндинг данных после $destroy
Всем привет, пишу приложение под мобильные телефоны на angular.js и столкнулся со всем известной проблемой производительности ng-repeat.
Решил, зачем каждый раз при возврате на страницу заного компилировать весь dom, можно просто закешировать его. Когда вызывается событие $destroy у scope я переншу нужные элементы в виртаульный div которого нет в dom. По возвращению на страницу просто вставляю его в нужное место. Работает отлично, но перестают работать события и биндинг данных. Может кто подскажет, как сохранить привязку данных, не используя $compile и $interpolate. Спасибо |
Имхо, никак. Но мне проблема низкой производительности ng-repeat не знакома, возможно из-за того что я не использую endless scroll.
|
В принцыпе, уже нашел решение, нужно писать свой ui-view.
Теперь другой вопрос, как уже существующий scope привязать к другому scope. То есть сделать его дочерным. |
Самое простое привязать через html:
<div ng-controller="parentController as parent"> <div ng-controller="childController as child"> {{parent.data}} </div> </div> |
Всем спасибо, собственно уже решил проблему сам. Написал сервис который может удалять и соеденять scope с сохранением watchers. Производительность с кешированием dom, просто супер.
|
В общем написал дерективу которая будет кешировать весь dom что находится в ней, и при смене state просто востанавливать его.
Производительность 300-400% https://github.com/rotorgames/angular-rg-cache-view |
Часовой пояс GMT +3, время: 03:18. |