2017-06-09 2 views
0

デモapplication私はすべての要素が観測可能な配列を持っています。このアプリケーションでは、サーバーからの呼び出しをシミュレートする関数があります。リストにバインドされた同じ配列を取得しますが、1つの項目が変更されています。これは私がそれを実装している方法です。ノックアウトJS - サーバーからのデータの取得と再バインディング - フロントエンドのパフォーマンス上の問題

this.serverDataSimulation=function(){ 
    aArray[Math.floor((Math.random() * 10) + 0)].name=Math.floor((Math.random() 
* 2000) + 1000); 
    ko.mapping.fromJS(aArray, this.allItems); 
} 

aArrayは、サーバから取得したデータのシミュレーションであり、私はko.mappingと、リストにバインドしています。問題は、1つのアイテムのみを更新するのではなく、リスト全体が再レンダリングされるということです。私はまだ、配列のすべての要素を、再バインディングの後だけでなく、再バインドの前にも観測可能にしたいと考えています。これを修正する方法はありますか?

+0

を:http://knockoutjs.com/documentation/plugins- mapping.html。私は確信していませんが、おそらくあなたの観測可能な配列では、 'aArray'で変更した要素だけを変更します。 –

答えて

0

この試してみてください:あなたは、このリンクで「キー」**を使用してセクション**一意に特定のオブジェクトを読むことができる

this.serverDataSimulation=function(){ 
    var selectedItem = this.allItems()[Math.floor((Math.random() * 10) + 0)]; 
    selectedItem.name(Math.floor((Math.random() * 2000) + 1000)); 
} 

http://jsfiddle.net/Jorgelig/GSvnh/5897/

+0

Sorrryですが、あなたが提案しているコードは、ランダムな項目の名前を変更するだけで、 "サーバから返された"配列とは何の関係もありません。 – gfels

関連する問題