knockoutjs undo ko.mapping.fromJS
knockoutjs undo ko.mapping.fromJS
我知道有一个函数ko.utils.unwrapObserable()
,但它似乎根本没有打开由ko.mapping.fromJS()
映射的可观察对象:
console.log(listing);
listing = ko.utils.unwrapObservable(listing);
console.log(listing);
我得到以下输出:
Object { __ko_mapping__={...}, title=c(), remote_id=c(), more...}
Object { __ko_mapping__={...}, title=c(), remote_id=c(), more...}
我问这个问题的原因与另一个问题有关,基本上,列表是一个类的实例,它的方法引用了它的变量,问题是在列表映射到一个可观察对象之后,类方法会失败,因为变量变成了方法。
我的问题是,是否有函数可以撤消映射?
您需要的是ko.mapping.toJS
函数(请参阅文档中的)。
它确实与ko.mapping.fromJS
完全相反,因此它将具有可观测属性的对象变成了没有任何可观测的纯JavaScript对象:
console.log(listing);
listing = ko.mapping.toJS(listing);
console.log(listing);
Object { title="..,", remote_id="...", more...}
ko.mapping.toJS
的实际实现是,它递归地遍历对象属性,并在每个属性上调用ko.utils.unwrapObservable
。
相关文章:
- 如何使用Knockout Mapping插件映射到来自服务器对象的数组,并进行一些计算
- knockoutjs undo ko.mapping.fromJS
- Knockout mapping用于ko.mapping.toJSON()的选项-方法
- foreach:绑定不起作用 ko.mapping.fromJS 数据
- Durandal ko mapping:映射 li 未在 DOM 中渲染
- 为什么一个ko.mapping.fromJS工作而另一个不工作
- Web Socket Mapping with Java
- 使用 ko.mapping.fromJS 更新异步 ajax 调用后可观察的淘汰表
- 如何使用 ko.mapping - Knockout 更新 Javascript 对象中的属性
- 无法处理绑定,请使用 ko.mapping.fromJS 将 JSON 数据推送到 ObservableArray
- Knockout maping.fromJS for observableArray from json object.
- 将新的 Observable 添加到由 ko.mapping.fromJS 映射的 ObservableArray
- 为什么 knockout.mapping 在某些数据结构上失败
- knockout.mapping下拉列表,获取选定值
- 如何在jasmine测试用例中模拟$(element).show和ko.mapping.fromJS
- KnockoutJS.Mapping.FromJS-可观察数组-删除不起作用
- 如何将ko.mapping.fromJS数组中的项复制到视图模型的另一个属性
- 传入ko.mapping.fromJS的复杂对象
- 如何使用ko.mapping.fromJS用Ajax调用的数据填充observable ray
- 用mapping.fromJS和template击倒js