使用 ko.mapping.fromJS() 创建的可观察数组具有可观察元素。我怎样才能让它表现得更像 ko.observableArray() ,其中数组是可观察的,但数组的元素不是?谢谢你。
问问题
1986 次
2 回答
2
您可以使用映射插件创建选项。从 ko 文档(http://knockoutjs.com/documentation/plugins-mapping.html):
// The data to be mapped
var data = {
name: 'Graham',
children: [
{ id : 1, name : 'Lisa' }
]
};
// Your custom data model
var myChildModel = function (data) {
this.id = data.id;
this.name = data.name;
};
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
};
var viewModel = ko.mapping.fromJS(data, mapping);
在这个例子中,'children' 数组将被映射为一个可观察的数组,其中的属性不是可观察的。
于 2013-08-09T12:33:32.477 回答
0
你可以使用
var model = ko.observableArray(ko.toJS(data));
这将使顶级元素成为 observableArrays,但子数组将保持普通数组而不是可观察的。我不确定这是否适合您。
于 2013-08-09T12:43:45.967 回答