虚拟中继器和量角器
Virtual Repeater and Protractor
问题:
在量角器中定位 Virtual Repeaters 的 canonical/preferred 方法是什么?
故事:
在 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
一起使用?
根据findRepeaterRows()
and repeaterMatch()
内置函数,by.repeater
定位器使用CSS选择器搜索具有不同前缀的不同"repeat"类属性:
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"]');
问题:
在量角器中定位 Virtual Repeaters 的 canonical/preferred 方法是什么?
故事:
在 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
一起使用?
根据findRepeaterRows()
and repeaterMatch()
内置函数,by.repeater
定位器使用CSS选择器搜索具有不同前缀的不同"repeat"类属性:
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"]');