Существует нокаута модель:Нокаут добавление новых свойств уже существующего вида модели
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()
.
Это должно вызывать пользовательское сопоставление и создавать новые наблюдаемые данные (на основе данных с сервера), а также некоторые вычисленные переменные. Однако это настраиваемое связывание не работает. Он не создает никаких новых наблюдаемых. Я считаю, что это должно быть «обновление» отображение, но я не понимаю, как я могу продлить внутри него существующую модель