2015-04-09 2 views
0

Я новичок в Angularjs, и мое приложение (построенное с помощью Angular & Rails) занимает слишком много времени для загрузки изображений/данных. Поэтому я планирую оптимизировать код. Вот очень быстрый и короткий вопрос. Каков наилучший способ использования ng-repeat? Я планировал использовать track by в ng-repeat.Лучший способ использовать ng-repeat в Angularjs для определенного поля

В моем $scope.attributes Я получаю тысячи данных с сервера. В каждом есть много полей. Но я хотел использовать одно поле из них. Я пробовал что-то вроде этого:

<div ng-repeat="attribute in attributes track by attribute.name" > 
<li> {{attribute.name}} </li> 
</div> 

Это правильный путь? Я видел много примеров повсюду, использующих track by task.id. Могу ли я использовать любое specificимя поля вместо id? Могу ли я использовать фильтр? в чем смысл подхода $$hashkey? Я хотел загрузить изображения, и это занимает больше времени. Пожалуйста, совет экспертов.

+0

создание и обмен образцов плункер или скрипка будет полезным, чтобы помочь вам лучше. – roxid

+0

Я согласен с вами, но я получаю данные с сервера. Мне просто нужен совет, который является наилучшим способом использования этого. –

+1

Что вы ожидаете от фотографии. Звучит как проблема больше связана с слишком большим количеством данных, отображаемых за один раз, а не с тем, как ng-repeat работает – charlietfl

ответ

1

если вы отслеживаете на .name он будет использовать .name в качестве идентификатора, например, если список изменений будет найти ROW по .name

Если список не изменится, посмотрите на один из способов связывания

<div ng-repeat="attribute in ::attributes track by $index" > 
<li> {{attribute.name}} </li> 
</div> 

- Я уверен, что это даст вам DIV вокруг LI

не связана с Q, но только что сделали некоторые настройки производительности AngularJS. Рассмотрите возможность использования ng-if вместо ng-show/ng-hide, ng-show/hide все равно произведет DOM, ng-if не будет. (Возможно, вы уже это сделали)

+0

так что индекс $ будет сортировать по id? и Какова цель использования '::' –

+0

:: для односторонней привязки, что означает отсутствие наблюдателей, когда все оседает. –

+0

нет, он не сортируется по id. Для нашего APP мы сортировались на сервере, поскольку это имело смысл для нашего использования. –

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