我原来有一个像这样的viewModel:
var ObjectViewModel = function (data) {
var self = this;
//debugger;
self.id = data.id;
self.details = data.details;
self.children = ko.observableArray(data.children);
self.deleteChild = function (child) {
// Pending UI
// call API here
// On success, complete
self.children.remove(child);
}.bind(self);
};
Run Code Online (Sandbox Code Playgroud)
现在我正在尝试使用映射插件,因此我可以使子数组元素可观察.我这样做了:
var ObjectViewModel = ko.mapping.fromJS(data);
Run Code Online (Sandbox Code Playgroud)
但我不确定如何将deleteChild方法添加到此.
我在这里找到了答案:
将属性添加到使用Knockout JS映射插件创建的视图模型
基本上,对于我需要添加的每个附加属性,我在innerModel上定义了一个新属性,如下所示:
var mapping = {
create: function(options) {
var innerModel = ko.mapping.fromJS(options.data);
innerModel.AdditionalProperty = 'Add Function Here';
return innerModel;
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2948 次 |
| 最近记录: |