2012-01-08 20 views
5

observableArray内でobservableが変更されたときに、observableArrayの更新をトリガーする方法を知る必要があります。内部観測値が変更されたときに更新するKnockoutJS observableArray

私はバイナリツリーを表すobservableArrayを持っています。私は、配列の値を取得して設定するためにストレージマッピング関数を使用していますので、たとえ空の文字が含まれていると思っても均衡が取れなければなりません。observable例えば。ノード()[9]多分ヌルが、そのノードが更新されたとき、私はnodes()[9](set new value)を呼び出し、(コードに目を通すとobservableArray.replaceを見つけることができた

答えて

4

observableArrayに.replace()を使用して終了しました。

3

を更新するobservableArrayをトリガする必要があります)

RELATED:How to replace a given index element in knockoutjs

+1

ここに置き換えてください。別のオプションは、スプライスを使用してアイテムを引き出し、次に交換アイテムを押し込むことですが、もう一度、交換する方が良い方法です。 –

+0

はい、スプライスを使用した場合、どのように正しい位置に戻すことができますか? – Ryan

+1

spliceは任意の位置から要素を追加、削除、追加、削除することができます。 https://developer.mozilla.org/ja/JavaScript/Reference/Global_Objects/Array/spliceを参照してください。たとえば 'array.splice(3,1、 'hello')'は純粋なjavascriptの中の "replace"を実装します。 KOでは、observableArraysに便利なメソッドが追加されています。与えられた位置の要素だけを追加する別の例は 'array.splice(3、0、 'hello'、 'world')'です。 – saurus

関連する問題