我试图按字母顺序对对象数组进行排序。但是,不知怎的,vaadin-combo-box
Polymer元素只显示排序后数组中的第一个项目(即使数组中有更多项目)
我从Firebase(称为settingsData
)获取数据,因此我必须使用拼接观察器来查看是否正在添加或删除数据:
观察
observers: [
'sortData(settingsData.splices)'
],
sortData: function(newD, oldD) {
if(newD) {
var tmp = this.settingsData.sort(function(a,b) {return (a.name.toUpperCase() > b.name.toUpperCase()) ? 1 : ((b.name.toUpperCase() > a.name.toUpperCase()) ? -1 : 0);} );
//tmp is an array in the correct order
this.set("filteredItems", tmp);
}
}
HTML
<vaadin-combo-box id="picker" label="[[label]]" items="[[filteredItems]]" item-label-path="name" item-value-path="name" value="{{valueText}}" on-value-changed="valueChanged"></vaadin-combo-box>
答案 0 :(得分:0)
this.settingsData.sort
确实只返回1个项目,或者Firebase的反应数据会将其中断。无法使用内联数组数据重现它。