在淘汰赛中对可观察的列表进行排序

费尔斯

我不明白 - 为什么在这个例子中当列表是一个可观察数组时我可以对这个表进行排序,但是在这个例子中,一个数组不是一个可观察数组,但所有项目都作为可观察对象 - 它没有。

当我也将数组的所有项目都作为可观察对象时,如何进行排序?

使用此数组,排序按预期工作

this.allItems = ko.observableArray([
    {name:"Annabelle"},
    {name:"Vertie"},
    {name:"Charles"}
]);

但有了这个,它不会

var ListSortModel = function () {
this.allItems = ko.mapping.fromJS([
    {name:"Annabelle"},
    {name:"Vertie"},
    {name:"Charles"}
]);
用户3297291

您的ko.mapping插件循环遍历您的内部对象并使属性observable. IE:

this.allItems = ko.observableArray([
    { name: ko.observable("Annabelle") },
    { name: ko.observable("Vertie") },
    { name: ko.observable("Charles") }
]);

a.name < b.name现在这样的比较比较两个 observable 实例,它不能真正做到……您需要比较 observables 的内部值,您可以通过调用它们来检索:obj.name()

因此,对于映射版本,您需要使用a.name() < b.name()而不是a.name < b.name.

附加说明:使用可能更好 return a.name().localeCompare(b.name());

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

淘汰赛:找出计算出的可观察触发

淘汰赛订阅可观察的复杂对象的任何更改

设置新值时,淘汰赛力量将可观察的事件通知订户

计算出的强制淘汰赛在更换可观察到的内部后重新评估

淘汰赛JS:从ViewModel可观察数组创建Json

淘汰赛:将可观察对象克隆到另一个变量中并将其变为不可观察

替换作为参数发送的可观察的淘汰赛

淘汰赛可观察到多个订阅

如何在html上显示此可观察到的淘汰赛?

在淘汰赛js上使用lodash排序列表

无法进行淘汰赛

淘汰赛可观察到的最新价值

带有字符的淘汰赛追加可观察对象

在淘汰赛js中,单选按钮的可观察值未更改

淘汰赛可观察的订阅多次触发

在淘汰赛可观察阵列订阅功能中,您可以确定添加或删除了哪些元素?

淘汰赛可排序-列表项中的多个元素

可观察到淘汰赛更新

淘汰赛可观察数组未绑定html中的future元素

使用淘汰赛中的下拉列表进行内联编辑

是否让淘汰赛计算对象订阅不在初始执行路径中的可观察对象?

淘汰赛如何设置可观察儿童的价值

从可观察到的淘汰赛中删除最后一个角色

将recaptcha响应放入可观察到的js淘汰赛中

淘汰赛JS和可观察的单选按钮

淘汰赛:可观察输入数组的 observableArray

分配时淘汰赛可观察数组被覆盖

淘汰赛:更改可观察值

侧面可观察数组中可观察数组的变化不更新淘汰赛js中的UI