问题:
在量角器中找到Virtual Repeaters的规范/首选方式是什么?
故事:
在Angular Material设计中,有Virtual Repeater有助于在视口区域中可见的行的动态重用的帮助下提高渲染性能。样品:
<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
?
答案 0 :(得分:5)
根据findRepeaterRows()
和repeaterMatch()
内置函数,by.repeater
定位器使用CSS选择器搜索具有不同前缀的不同“重复”类属性:
ng-repeat
ng_repeat
data-ng-repeat
x-ng-repeat
ng:repeat
然后,它会删除所有过滤器,跟踪(track by
),别名(as
),然后检查我们尝试匹配的转发器值。
换句话说,此时 by.repeater
不会找到虚拟转发器。
在此处创建了一项功能请求:
此时,考虑到虚拟转发器不支持高级语法元素为track
或as
,我认为使用CSS选择器已经足够了:
$$('[md-virtual-repeat="item in ctrl.dynamicItems"]');