Knockout.js 订阅敲除js中另一个viewmodel的值
我正在尝试将视图模型拆分为多个可重用的视图模型。 我有一个视图模型,其中包含几个下拉列表和一个按钮Knockout.js 订阅敲除js中另一个viewmodel的值,knockout.js,knockout-mapping-plugin,Knockout.js,Knockout Mapping Plugin,我正在尝试将视图模型拆分为多个可重用的视图模型。 我有一个视图模型,其中包含几个下拉列表和一个按钮 var TopView = function () { self.DropDownA = ko.observableArray(); self.selectedDDA = ko.observable(); self.DropDownB = ko.observableArray(); self.selectedDDB = ko.obse
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!");
}
}
我的主视图模型如下所示:
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???
}
如何从我的mainview订阅DropDownA和DropDownB选择的值???
请帮忙!谢谢大家! 只要不想完全交换,就不需要让
TopView
本身可见。您只需将其创建为MainView
的属性,并像在绑定中那样访问它:
<button data-bind="click:topView.buttonClicked">click me, I'm a button!</button>
只要不想完全交换,就不需要让
TopView本身可见。您只需将其创建为MainView
的属性,并像在绑定中那样访问它:
<button data-bind="click:topView.buttonClicked">click me, I'm a button!</button>
您意识到您在TopView
构造函数中使用了self
,而没有事先将其分配给此
?您意识到您在TopView
构造函数中使用了self
,而没有事先将其分配给此
?