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

Knockout.js 是否可以从koLite获取原始对象值?,knockout.js,kolite,Knockout.js,Kolite,我正在使用knockoutJS和koLite。看起来koLite以某种方式存储了我的对象的原始值。我这么说是因为如果我编辑一个值,脏标志将返回true。但是,如果我将该值更改回其原始值,脏标志将重置回false 那么,如果koLite实际存储的是我的对象的原始值,有没有办法使用它将我的对象恢复到其原始状态?这里的想法是一个编辑表单,用户决定取消他们的更改。查看,是的,它跟踪原始值,至少跟踪散列值的大小(但默认的“散列”函数实际上只是ko.toJSON,因此它有可用的值): 但是没有内置的机制将值

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

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

查看,是的,它跟踪原始值,至少跟踪散列值的大小(但默认的“散列”函数实际上只是ko.toJSON,因此它有可用的值):

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


关于堆栈溢出,已经讨论过多次恢复淘汰视图模型(不一定与koLite相关),因此可能有一个答案不使用koLite进行恢复。如果操作正确,koLite应该更新脏标志并将其设置回false。

是的,它跟踪原始值,至少跟踪值的散列程度(但默认的“散列”函数实际上只是
ko.toJSON
,因此它有可用的值),但是没有内置的机制将值重置回原来的值-你必须自己写一些东西。嗯。。您可能可以使用映射插件将这些值映射回来。例如:
ko.mapping.fromJSON(data.obj,{},viewModel.obj)
或者,如果模型是单个属性,只需在模型上设置值。@JamesThorpe如果您发表评论,我将选择它作为答案。非常感谢。
_lastCleanState = ko.observable(hashFunction(_objectToTrack)),