0

我有一个问题总结在这个简单的例子中:http: //jsfiddle.net/2wFHX/

我需要将 'priority' 和 'list' observables 设置为正确的值,具体取决于它被移动到哪个列表中或在其中重新排序。

例如,如果所有任务都按 A、B、C 的顺序在“列表 1”中,则应相应地设置 viewmodel observableArray 中的优先级 (0,1,2)。

请注意,列表是故意使用函数绑定的。我认为这是淘汰赛可排序扩展引起问题的地方。理想情况下,我希望将所有任务保存在一个集合中,因为这样以后处理 Web 服务会稍微容易一些,但我认为扩展不支持使用函数作为数据源?

4

1 回答 1

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);
        }
    }
};
于 2012-10-11T15:23:57.547 回答