我遇到了一个问题,在这个简单的示例中进行了总结:http://jsfiddle.net/2wFHX/
我需要将'priority'和'list'可观察值设置为正确的值,具体取决于它移入或重新排序的列表。
例如,如果所有任务都在A,B,C顺序的“List 1”中,则应相应地设置viewmodel observableArray中的优先级(0,1,2)。
请注意,列表是使用函数故意绑定的。我认为这是knockout sortable extension造成问题的地方。理想情况下,我希望将我的所有任务保存在一个集合中,因为稍后会更轻松地处理Web服务,但我不认为扩展支持将函数用作数据源?
答案 0 :(得分:0)
我已经重新编写了我的代码来使用observableArrays而不是函数,还添加了一个订阅者来在有任何更改时更新索引。
对于任何感兴趣的人都是我的reindex功能:
self.reIndexList = function (list) {
for (var i = 0, j = list.length; i < j; i++) {
var item = list[i];
if (!item.index) {
item.index = ko.observable(i);
} else {
item.index(i);
}
}
};