0

我正在使用 knockoutJS 和 koLite。koLite 似乎以某种方式存储了我的对象的原始值。我这么说是因为如果我编辑一个值,脏标志返回 true。但是,如果我将该值更改回其原始值,脏标志将重置为 false。

那么,如果 koLite 实际上存储了我的对象的原始值,有没有办法使用它来将我的对象恢复到其原始状态?这里的想法是用户决定取消更改的编辑表单。

4

1 回答 1

0

查看 的来源dirtyFlag,是的,它会跟踪原始值,至少在对值进行哈希处理的情况下(但默认的“哈希”函数实际上只是 ko.toJSON,因此它具有可用的值):

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

但是没有内置机制可以将值重置回或检索到原始值 - 您必须自己编写一些东西。如果散列函数发生变化,或者向 koLite 提供了不同的散列函数,它甚至可能没有可用的原始值,所以不要依赖它在未来的版本中是否存在。

已经在 Stack Overflow 上讨论过恢复淘汰视图模型(不一定与 koLite 相关),因此可能有一个答案不使用 koLite 进行恢复。如果正确完成,koLite 应该更新并将脏标志设置回 false。

于 2015-09-24T14:57:31.600 回答