as値name = ko.observable('John')
にバインドされているとしましょう。変更された場合はinput
表示する必要があります(前に非表示)。したがって、名前をからに編集すると、保存ボタンが表示され、編集して戻すと、再び非表示になります。ここでどのようなバインディング/拡張を適用できるかについて何かアイデアはありますか?
まことにありがとうございます!<button>Save</button>
name
John
Jack
John
質問する
182 次
1 に答える
3
必要なのはダーティトラッキングと呼ばれます。
ダーティフラグの実装を含むKoLiteと呼ばれるkoプラグインがあります(この記事でどのように機能するかについて読むことができます):
ko.DirtyFlag
使用法は非常に簡単で、オブザーバブルを(計算されたオブザーバブルを返す)メソッドに渡す必要があります。
var ViewModel = function() {
var self = this;
self.name = ko.observable('John');
self.dirtyFlag = new ko.DirtyFlag(self.name);
}
そして、あなたの見解では、あなたはあなたのisDirty
プロパティにバインドすることができますdirtyFlag
:
<input type="text" data-bind="value: name, valueUpdate: 'keyup'"/>
<div data-bind="if: dirtyFlag().isDirty">
<button>Save</button>
</div>
于 2012-11-10T13:05:08.853 に答える