komapping fromjs exclude 属性 从转换为可观察的数组元素内部
komapping fromjs exclude property from converting into observable inside elements of array
我正在尝试使用 komapping 插件将 属性 转换为 observable。
我确实有如下相同类型的对象数组:
var data =[{ b1: "v1", b2: "b21" }, { b1: "v2", b2: "b22" }] ;
现在我想 属性 b1 as if 和 b2 使用 komapping 转换为 observable。为了简单起见,我在这里只保留了两个属性,但实际上我有更多属性。
所以我试了下:
var data = [{ b1: "v1", b2: "b21" }, { b1: "v2", b2: "b22" }] ;
var result = ko.mapping.fromJS(data, { copy: "b1" });
console.log(result());
但是不行here是jsfiddle
我认为您当前的映射选项仅检查您传递的第一个数据中的 b1
属性 名称,即:数据数组。
解决这个问题的一种方法(可能不是最简单的,我不确定)是定义如何处理每个项目:
var data = [{ b1: "v1" }, { b1: "v2" }];
var result = ko.mapping.fromJS(data, {
create: function(options) {
var nestedData = options.data;
return ko.mapping.fromJS(nestedData, { 'copy': 'b1' });
}
});
data
中的每个项目都传递给 options.data
中的 create
方法(原始数据仍然可以通过 data
或 options.parent
访问)。
创建函数 returns 使用您最初尝试的映射的映射对象。
这是更新后的 fiddle:http://jsfiddle.net/1ftk3a03/
我正在尝试使用 komapping 插件将 属性 转换为 observable。
我确实有如下相同类型的对象数组:
var data =[{ b1: "v1", b2: "b21" }, { b1: "v2", b2: "b22" }] ;
现在我想 属性 b1 as if 和 b2 使用 komapping 转换为 observable。为了简单起见,我在这里只保留了两个属性,但实际上我有更多属性。
所以我试了下:
var data = [{ b1: "v1", b2: "b21" }, { b1: "v2", b2: "b22" }] ;
var result = ko.mapping.fromJS(data, { copy: "b1" });
console.log(result());
但是不行here是jsfiddle
我认为您当前的映射选项仅检查您传递的第一个数据中的 b1
属性 名称,即:数据数组。
解决这个问题的一种方法(可能不是最简单的,我不确定)是定义如何处理每个项目:
var data = [{ b1: "v1" }, { b1: "v2" }];
var result = ko.mapping.fromJS(data, {
create: function(options) {
var nestedData = options.data;
return ko.mapping.fromJS(nestedData, { 'copy': 'b1' });
}
});
data
中的每个项目都传递给 options.data
中的 create
方法(原始数据仍然可以通过 data
或 options.parent
访问)。
创建函数 returns 使用您最初尝试的映射的映射对象。
这是更新后的 fiddle:http://jsfiddle.net/1ftk3a03/