1

ノックアウトモデルに基づくアイソトープビューのリセット/更新/再読み込みに問題があります。以前のフィドルを拡張してアイテムを削除および置換しましたが、信頼性が低く、並べ替えが壊れています。

    self.reset = function () {
        // Remove all services
        $.each(self.services(), function (index, value) {
            var serviceToDelete = self.services()[0]
            self.removeService(serviceToDelete);
        })

        // Add some back
        self.services.push(new Service('some service', 'and this is a description', 7, '01/01/2000'));
        self.services.push(new Service('another service', 'just another description', 2, '02/01/2000'));
        self.services.push(new Service('driving school', 'learn to drive', 4, '10/01/2000'));
        self.services.push(new Service('ice cream sunday', 'sweet cold and delicious', 3, '01/01/2002'));
        self.services.push(new Service('tootie fruity', 'a rootie', 6, '01/01/2003'));
        self.services.push(new Service('hand gliding', 'you can see your house from here', 5, '01/01/2012'));
        self.services.push(new Service('turkey dinner', 'is not just for thanksgiving', 1, '01/01/2011'));                
    }

次のjsfiddleを「リセット」ボタンで拡張しました。このボタンは、observableArrayからすべてのアイテムを削除し、それらを1つずつ読み取ります。

http://jsfiddle.net/8uxKF/2/

  1. IE10では完全に失敗します。フィドルの実行ペインはロードされません。

  2. Chromeで部分的に機能しますが、リセット後、並べ替えが開始されるたびにコンソールエラーが出力されます。

    Uncaught TypeError:オブジェクト#にはメソッド'sortBy'がありません

  3. FFでは、chromeと同様のエラーで動作します。(しかし、私のアプリではソートに失敗します)

誰か助けてもらえますか?リセット後に機能するにはソートが必要です。問題を引き起こしているように見えるため、これがリセットの「最良の」方法であるかどうかはわかりません。

4

2 に答える 2

0

self呼び出される関数/プロパティがありませんsortBy()(また、ありませんsortDir())。serviceAdded「イベント」はこれらの存在しないプロパティを呼び出そうとするため、失敗します。

あなたが何をしているのか正確にはわかりません。あなたのコードはいたるところにあります。おそらく、これらのオブザーバブルをビューモデルに追加する必要がありますか?

function ViewModel() {
    var self = this;
    // ...
    self.sortBy = ko.observable('name');
    self.sortDir = ko.observable('ascending');
}
于 2012-10-21T22:12:46.507 に答える
0

修正したsortByIDの1つのエラーを除いて、コードとその問題を確認しました。

イライラして恥ずかしいことに、GitHubから提供されたときに、jsFiddleがmimetypeの不一致のためにリソースの1つをブロックしていたようです。明確にするために、これはjsFiddle内でGitHubから外部スクリプトを実行する際の問題でした。

参照用にjsfiddle.net/8uxKF/3に投稿された最終コード。

于 2012-10-22T08:05:53.963 に答える