是否可以从koLite获取原始对象值?

时间:2015-09-24 13:42:01

标签: knockout.js kolite

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

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

1 个答案:

答案 0 :(得分:0)

查看source of dirtyFlag,是的,它跟踪原始值,至少在它散列值的同时(但默认的“hash”函数实际上只是ko.toJSON,所以它有价值可用):

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

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

已经在Stack Overflow上讨论了几次关于淘汰视图模型(不一定与koLite有关),所以可能有一个答案没有使用koLite来进行返回。如果操作正确,koLite应该更新并将脏标志设置为false。