维护一个有序的ObservableArray
Maintain a sorted ObservableArray
我希望ko.observableArray
保持自己的排序顺序,其中排序顺序依赖于每个项的计算属性。
I'd like this work:
var threads = ko.observableArray().extend({ sorted: Thread.desc });
我有一个使用扩展器的jsfiddle尝试,但是对子可观察对象的更改不会导致重新排序。
这是如何ko应该工作,还是我错过了一个步骤?
编辑:原来我有错误的依赖关系。改变messages
并不会将threads
标记为已改变,即使在排序方法中调用了preview
,所以它当然不会排序。
仍在研究一个简洁的解决方案,通过依赖子元素来维护排序列表
我最终选择了http://jsfiddle.net/E49Y3/11/,在那里我只保留了一个单独的计算属性:
model.threads = ko.observableArray();
model.threadsDesc = ko.computed(function(){
return model.threads().sort(Thread.desc)
});
工作!
相关文章:
- observablearray KnockoutJs中的对象
- Filtering observableArray
- 过滤observableArray时出现问题
- 检测observableArray是否发生变化
- UI中未更新Knockout ObservableArray
- 自定义过滤淘汰js observableArray
- KNOCKOUT js observableArray 不起作用
- ko observablearray:推送和直接分配之间的区别
- 嵌套的JSON数组和Knockout observableArray
- 无法将项添加到observableArray
- KNOCKOUT ko.observableArray 不会刷新视图
- 在Knockoutjs中设置计算对象的observableArray的更好方法
- 访问observableArray中的非对象
- ObservableArray.push()触发点击事件
- 将JSON映射到observableArray时出错
- Knockoutjs计算未从observableArray更新
- observableArray is not defined
- 可以't get return Array插入到knockoutjs observableArray中
- 从knockoutJS中的observableArray中删除Self
- 用新数据替换observableArray