Виртуальный ретранслятор и транспортир
Вопрос:
каков канонический / предпочтительный способ найти Виртуальный Повторители в транспортира?
История:
в угловом материальном дизайне есть Виртуальный Репитер это помогает повысить производительность рендеринга с помощью динамического повторного использования строк, видимых в области видового экрана. Пример:
<div class="md-virtual-repeat-offsetter" style="transform: translateY(0px);">
<div md-virtual-repeat="item in ctrl.dynamicItems" md-on-demand="" class="repeated-item ng-binding ng-scope flex" flex="">0</div>
<div md-virtual-repeat="item in ctrl.dynamicItems" md-on-demand="" class="repeated-item ng-binding ng-scope flex" flex="">1</div>
<div md-virtual-repeat="item in ctrl.dynamicItems" md-on-demand="" class="repeated-item ng-binding ng-scope flex" flex="">2</div>
</div>
на данный момент, я должен использовать by.css
техника определения местоположения:
$$('[md-virtual-repeat="item in ctrl.dynamicItems"]');
Бонус-Вопрос:
есть ли способ сделать by.repeater
также работы с md-virtual-repeat
?
1 ответов
по словам findRepeaterRows()
и repeaterMatch()
встроенные функции, by.repeater
locator использует селекторы CSS для поиска различных атрибутов типа "повтор" с разными префиксами:
ng-repeat
ng_repeat
data-ng-repeat
x-ng-repeat
ng:repeat
затем он удаляет все фильтры, отслеживая (track by
), псевдонимы (as
), а затем проверяет, какое значение ретранслятора мы пытаемся сопоставить.
другими словами, by.repeater
в данный момент не собирается искать виртуальные ретрансляторы.
создал запрос здесь:
в данный момент, принимая во внимание, что виртуальные ретрансляторы не поддерживают расширенные синтаксические элементы as track
или as
, Я думаю, что использование селектора CSS достаточно хорошо:
$$('[md-virtual-repeat="item in ctrl.dynamicItems"]');