您可以使用ko.mapping.fromJS
var vm = ko.mapping.fromJS(people,{
create: function(options){
return {
status : ko.observable(options.data.status), // observable
name: options.data.name, // non observable
}
}
});
现在 vm 是一个 observableArray ,其中包含对象,其中状态是可观察的,名称是常规属性。
见小提琴
@Patryk:
如果您有许多属性并且只想将一个转换为可观察的,则可以这样做。
var o = ko.mapping.fromJS(people,{create: function(options){
// clone item
var item = ko.utils.extend(options.data, {});
// replace status property by an observable
item.status = ko.observable(options.data.status);
return item;
}});
查看更新的小提琴
您还可以使用带有映射参数的观察
var mapping = {
create: function (options) {
return ko.mapping.fromJS(options.data, {'observe': ["status"]});
}
};
var o = ko.mapping.fromJS(people, mapping);
见小提琴
我希望它有所帮助。