以聚合物

时间:2017-01-09 03:19:31

标签: javascript sorting polymer

在我的聚合物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>                

1 个答案:

答案 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;
}