0

ノックアウト JS と koLite を使用しています。koLite が何らかの形でオブジェクトの元の値を保存しているようです。値を編​​集すると、ダーティ フラグが true を返すためです。しかし、その値を元の値に戻すと、ダーティ フラグがリセットされて false に戻ります。

では、koLite が実際にオブジェクトの元の値を保存している場合、それを使用してオブジェクトを元の状態に復元する方法はありますか? ここでのアイデアは、ユーザーが変更をキャンセルすることを決定する編集フォームです。

4

1 に答える 1

0

のソースをdirtyFlag見ると、はい、少なくとも値がハッシュされている限り、元の値を追跡します (ただし、デフォルトの「ハッシュ」関数は実際には ko.toJSON であるため、使用可能な値があります)。

_lastCleanState = ko.observable(hashFunction(_objectToTrack)),

ただし、値を元の値にリセットしたり、取得したりするための組み込みのメカニズムはありません。自分で何かを作成する必要があります。ハッシュ関数が変更された場合、または koLite に別の関数が提供された場合、元の値が利用できない可能性があるため、将来のバージョンで存在することに依存しないでください。

ノックアウト ビュー モデルを元に戻すこと (必ずしも koLite に関連するわけではありません) については、スタック オーバーフローで既に数回議論されているため、元に戻すために koLite を使用しないという回答があるかもしれません。適切に実行された場合、koLite はダーティ フラグを更新して false に戻す必要があります。

于 2015-09-24T14:57:31.600 に答える