[英]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.