1

Knockout JS について少し助けが必要です。

Todo リスト タイプの Web アプリがあり、データベースから取得したデータを含むタスク リストを含む監視可能な配列全体をオンデマンドで更新する必要があります。

ここでサンプルのフィドルを作成しました: http://jsfiddle.net/ingro/43XcU/26/

self.update = function(){

    var values = [
        {time: "17:00", title: "test#11"},
        {time: "18:00", title: "work#22"},     
        {time: "19:00", title: "task#33"},    
        {time: "20:00", title: "sleep#14"}
    ];

    self.clone = ko.observableArray(ko.utils.arrayMap( values , function( clone) {
        return new Post(clone.time, clone.title);
    }));

    var count = 0;

    ko.utils.arrayForEach(self.posts(), function(post) {
        post.time(self.clone()[count].time());
        post.title(self.clone()[count].title());
        count++;
    });           

}

「値」のデータは、サーバーからの JSON 応答をシミュレートします。私がそれを機能させた唯一の方法は、クローンの監視可能な配列を作成し、実際の配列を循環して、そのすべての要素を新しい値で 1 つずつ更新することです。これは、2 つの配列の要素数が等しくない場合など、さまざまな理由から最適なソリューションではありません。

それで、誰かがそれを更新するためのより良い方法を私に提案できますか?

私のひどい英語に感謝し、申し訳ありません:D

4

1 に答える 1

2

絶対に必要なものかどうかはわかりませんが、ノックアウト マッピング プラグインを使用して実行しました: http://knockoutjs.com/documentation/plugins-mapping.html

ここでフィドルを試すことができます: http://jsfiddle.net/Chubyone/a682w/6/

よろしく。

于 2012-06-07T09:52:08.550 に答える