0

KnockoutJSを使用してオブザーバブルの初期値のみをdom要素にバインドするクリーンな方法はありますか?

観察不可能なものにバインドすることでこれを達成できることは知っていますが、別の観察可能なプロパティの初期値を保持するためだけに余分なプロパティを作成したくはありません。

これを試しましたが、役に立ちませんでした。属性は変更のたびに更新されます。

<input type="text" id="tbName" 
  data-bind="value:name, attr: { 'data-initialnamevalue': ko.utils.unwrapObservable($data.name()) }" />
4

2 に答える 2

1

上記のZero21xxxに同意しますが、initメソッドを提供するカスタムバインディングを使用できると思いますが、updateメソッドは使用できません。

別のプロパティを追加するだけでなく、努力する価値があるかどうかはわかりません。

これが私の言いたいことの簡単な例です:http://jsfiddle.net/ZkFRu/3/

最初の段落はプロパティの現在の値をバインドし、2番目の段落は初期値をバインドします。ボタンをクリックすると、プロパティがインクリメントされます。

于 2012-04-23T20:34:01.370 に答える
0

値が最初にバインドされたときに値が挿入されるように括弧を追加することで、監視可能な値ではなく、監視可能な値に直接バインドできます。要素が更新されると、バインディングはオブザーバブルではなく値にあるため、オブザーバブルは更新されません(つまり、オブザーバブル関数を呼び出して値を設定する方法がわかりません)。

<input type="text" id="tbName" data-bind="value: name()" />
于 2012-05-02T21:06:55.857 に答える