聚合物dom-repeat排序完成事件

时间:2016-04-05 19:27:39

标签: polymer-1.0

如何知道何时完成排序?

聚合物模板示例:

   <template is="dom-repeat" items="{{list}}" sort="{{_sort(sortKey, sortAsc)}}" > <!-- change of _sort() args triggers sorting -->
        {{item}}
    </template>
sortKey sortAsc 更改时,将调用

_sort()方法。 list 已正确排序和显示。 我有观察员观察 sortKey sortAsc 的变化,这种情况在排序之前发生,所以它们没用。

列表上的观察者在排序后不会触发。 我需要知道排序何时完成,我可以处理已排序的列表

谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

您可以收听在渲染结束时将触发的dom-change事件,因此在调用了排序和/或过滤器函数之后。

没有关于sort函数本身的具体事件。

https://github.com/Polymer/polymer/blob/master/src/lib/template/dom-repeat.html#L461

答案 1 :(得分:0)

经过一些研究后,我了解到没有&#34;排序完成&#34;事件因为它没用。 以下是Polymer的内容:

  1. 用户界面由<template is="dom-repeat" sort="{{_sort(sortKey)}}">处理,此处的排序将仅影响模板中显示的列表。作为列表源的JavaScript数组保持不变 - 未排序。
  2. JavaScript代码必须在列表上执行Array.sort()方法,因此列表将实际排序。可以通过观察{{sortKey}}值的更改来触发JavaScript排序,然后可以进一步处理排序列表。
  3. 看起来像是重复,但这是迄今为止我能找到的唯一解决方案。

    聚合物岩石!

    我正在重写最初在AngularJS中完成的应用程序。 ng-repeat需要42秒来渲染1000个项目的列表,Polymer会在几分之一秒内完成!