0

この簡単な例に要約されている問題があります: http://jsfiddle.net/2wFHX/

「priority」および「list」オブザーバブルを、どのリストに移動または再配列するかに応じて正しい値に設定する必要があります。

たとえば、すべてのタスクが 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 に答える