Dav*_*las 4 polymer polymer-1.0
我希望在铁列表中对数据进行排序(并在将项目添加到数据数组中时对其进行排序).
样本(未排序)的json数据:
[
{"name": "Zebra"},
{"name": "Alligator"},
{"name": "Lion"}
]
Run Code Online (Sandbox Code Playgroud)
我尝试使用该indexAs属性进行iron-list如下排序,但API不清楚如何使用它:
<iron-ajax url="./data.json" last-response="{{data}}" auto></iron-ajax>
<iron-list items="[[data]]" as="item" index-as="name" class="fit">
<template>
<div>
Name: <span>[[item.name]]</span>
</div>
</template>
</iron-list>
Run Code Online (Sandbox Code Playgroud)
我不确定是否有更多的本地Polymer方法可以做到这一点,但是自己构建排序逻辑并不是太复杂.
我们的想法是听的response情况下,从服务中的数据进行排序,然后绑定items的iron-list到sortedData.
你需要添加on-response="_onResponseReceived"到你的iron-ajax.然后只是对返回的数据进行排序.
_onResponseReceived: function () {
this.sortedData = this.data.sort(this._compare);
},
_compare: function (a, b) {
if (a.name < b.name)
return -1;
if (a.name > b.name)
return 1;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
当然iron-list现在需要更新到
<iron-list items="[[sortedData]]" ...>
Run Code Online (Sandbox Code Playgroud)