在我的聚合物dom中,每个数据对象todo
都有多个item
,并且还有一个todo.idx
。我想根据item
订购todo.idx
,而不是数据中的(随机)排序。我怎么用聚合物做?
在polymer document中,它提到sort
函数,但我无法在那里找到示例。我目前的代码如下。
<ol>
<template is="dom-repeat" items="{{todos}}" as="todo">
<li><span> {{todo.item}} </span> </li>
</template>
</ol>
答案 0 :(得分:3)
您可以使用sort
属性对聚合物中的项目进行排序,在您的情况下,您可能希望使用嵌套模板,以便您可以对dom-repeat
对给定的待办事项进行排序:
<template is="dom-repeat" items="{{todos}}" as="todo">
<template is="dom-repeat" items="{{todo.items}}" as="item" sort="_sortItems">
<li><span>{{item}}</span></li>
</template>
</template>
然后,您可以使用与_sortItems
中的比较功能相同的方式定义Array.prototype.sort()
功能:
_sortItems: function(a, b) {
if (a.idx < b.idx) { return -1; }
if (a.idx > b.idx) { return 1; }
return 0;
}