繁体   English   中英

Vaadin-combo-box排序

[英]Vaadin-combo-box sorting

我正在尝试按字母顺序对对象数组进行排序。 但是,以某种方式, 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>

不知何故,第一次之后就不会触发数组突变的观察者。 这意味着vaadin-combo-box的视图未正确呈现,这看起来有点奇怪?

每当我尝试设置新数据时清除数组就可以了。

 this.set("filteredItems", []);
 this.set("filteredItems", tmp);

要么this.settingsData.sort实际上仅返回一项,要么Firebase的Reactive数据将其破坏。 无法使用内联数组数据重现它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM