【发布时间】:2015-07-27 09:33:42
【问题描述】:
有淘汰模式:
var customMapping = {
update: function (options) {
var result = ko.mapping.fromJS(options.data);
var self = this;
self.computeTest = ko.computed(function () {
return "Test" + self.newObs();
});
return result;
}
};
var model = function()
{
var self = this;
self.Test = ko.observable();
self.init = function() {
// create ajax call
// in success do mapping
ko.mapping.fromJS(data, customMapping, self); //this mapping should update existing model - adding new observables and computed
}
ko.applyBindings(self, $("#id")[0]);
}
var m = new model();
m.init();
所以: 1)我有淘汰赛模型。在其中定义了一些函数以及一个可观察对象列表。
2) 在数据来自服务器之前调用 Knocokut 绑定。
3) 使用m.init() 加载模型数据。
这应该调用自定义映射并创建新的 observables(基于来自服务器的数据),以及一些计算变量。但是,此自定义绑定不起作用。它不会创建任何新的 observables。我相信这应该是“更新”映射,但我不明白如何在现有模型中扩展
【问题讨论】:
标签: knockout.js knockout-mapping-plugin