【发布时间】:2012-01-30 05:30:41
【问题描述】:
我正在研究 Knockoutjs 网站上的映射插件示例。
这是示例数据。
var data = {
name: 'Scott',
children: [
{ id : 1, name : 'Alice' }
]
}
该示例显示了如何覆盖其中一个子对象的映射,但如何更改基础对象的映射。
例如,如果我想向 Scott 添加一个“FavouriteChild”属性,我该怎么做?
我假设我需要在基本映射上使用 create 函数,但我在任何地方都找不到语法示例。
var myChildModel = function(data) {
ko.mapping.fromJS(data, {}, this);
this.nameLength = ko.computed(function() {
return this.name().length;
}, this);
}
var mapping = {
'children': {
create: function(options) {
return new myChildModel(options.data);
}
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
编辑:从下面接受的答案中我发现这是可行的
<span data-bind='text: AdditionalProperty'>
淘汰码
var mapping = {
create: function (options) {
//customize at the root level.
var innerModel = ko.mapping.fromJS(options.data);
innerModel.AdditionalProperty = 'Hello World';
return innerModel;
}
}
var viewModel = ko.mapping.fromJS(data, mapping);
//use this as our model bindings
ko.applyBindings(viewModel);
【问题讨论】:
标签: knockout.js