【发布时间】:2012-09-28 05:27:59
【问题描述】:
在为 knockout.js 使用 knockout.mapping 插件时,我可以自定义集合中项目的创建方式,如下所示:-
var ItemModel = function (data) {
ko.mapping.fromJS(data, {}, this);
this.FooProperty = ...;
};
var mapping = {
'Items': {
create: function (options) {
return new ItemModel(options.data);
}
}
}
this.Items = ko.mapping.fromJS(data, mapping);
这假定数据包含一个包含集合的属性“Items”。但是如果 data 只是一个 JSON 数组呢?如何将我的创建函数挂钩到传入数据的顶级根中的项目?
从查看文档来看,映射对象中的键似乎可以是要作用的数据的属性名称,也可以是包含、忽略、复制之一。从此,我看不出如何实现我想要的,除非我将传入的 JSON 包装到具有属性的对象中,映射它,然后解包结果。
【问题讨论】:
标签: javascript knockout.js knockout-mapping-plugin