Я пытаюсь разделить модели просмотра на несколько моделей с возможностью повторного использования. У меня есть одна модель просмотра, которая содержит несколько выпадающих списков и одну кнопку.Подписывание значениям из другой модели представления в нокауте js
var TopView = function() {
self.DropDownA = ko.observableArray();
self.selectedDDA = ko.observable();
self.DropDownB = ko.observableArray();
self.selectedDDB = ko.observable();
$.getJSON("someAPIurl", function (result) {
ko.mapping.fromJS(result, {}, self);
}); //this builds dropdownA
$self.selectedDDA.subscribe(function(newValue) {
$.getJSON("anotherAPI"+newValue, function (result) {
ko.mapping.fromJS(result, {}, self);
});
}; // this builds dropdownB
$self.buttonClicked = function() {
alert("I clicked!");
}
}
Мой главный ViewModel выглядит следующим образом:
var MainView = function() {
var self = this;
var topView = ko.observable({ TopView: new TopView() });
// How do i get the selected values from topView once the user clicks the button???
}
Как подписаться на DropDownA и DropDownB выбранные значения из моего MainView ??? Пожалуйста, помогите! Спасибо!
Вы понимаете, что используете 'self' в конструкторе' TopView', не назначая его 'этому' заранее? –