Я только что начал проект, в котором пытаюсь использовать нокаут для своих привязок модели представления. Но у меня проблема, когда я не могу заставить модель представления реагировать на изменения (через ручную подписку), сделанные в представлении в поле выбора.
var viewModel = function() {
var self = this;
self.project = ko.observable();
self.contractBorders = ko.observable();
self.contractBorders.subscribe(function (newvalue) {
alert('something changed!');
});
};
viewModel.load = function() {
var data = {"project":{"name":"Project XYZ",
"number":338,"id":1,"isNew":false},"contractBorders":[{"name":"Border 1 grund","id":1},
{"name":"Border 2","id":2},{"name":"Border 3","id":3}]}
viewModel.loadView(data);
};
viewModel.loadView = function(data) {
self.project = ko.mapping.fromJS(data.project);
self.contractBorders = ko.mapping.fromJS(data.contractBorders);
ko.applyBindings(viewModel);
};
viewModel.load();
Я ожидаю, что "self.contractBorders.subscribe" будет выполнен, но этого никогда не происходит. Я делаю это совершенно неправильно?
Я создал Fiddle для воспроизведения проблемы здесь
Любая помощь будет оценена по достоинству!
/BR Винблад