有一个淘汰模型:
WebApplicationException
所以: 1)我有淘汰模型。在其中定义了一些函数以及一个可观察的列表。
2)在数据来自服务器之前调用Knocokut绑定。
3)使用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();
加载模型数据。
这应该调用自定义映射并创建新的observable(基于来自服务器的数据),以及一些计算变量。但是,此自定义绑定不起作用。它不会创建任何新的可观察量。我相信这应该是'更新'映射,但我不明白如何在其内部扩展现有模型
答案 0 :(得分:1)
鉴于您的代码,实际上可能还有一个可用的快捷方式:将ko.applyBindings
来电转移到init
方法正下方的mapping
方法。
如果不这样做,您将需要使用占位符/空/假Ajax结果来连接“默认”视图模型。