Vaadin-combo-box排序

时间:2017-05-12 10:27:10

标签: sorting firebase polymer vaadin

我试图按字母顺序对对象数组进行排序。但是,不知怎的,vaadin-combo-box Polymer元素只显示排序后数组中的第一个项目(即使数组中有更多项目)

enter image description here

enter image description here

我从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>

1 个答案:

答案 0 :(得分:0)

this.settingsData.sort确实只返回1个项目,或者Firebase的反应数据会将其中断。无法使用内联数组数据重现它。