[英]Show/Hide based on Dropdown selection in knockoutJS with model inside another model
[英]KnockOutJS Show Hide elements on dropdown selection change
嗨,我正在尝试在 Knockout js 中获取下拉列表的选定值,以便我可以根据选择隐藏/显示其他元素。 以下是我尝试过的。 发生了什么我能够在按钮单击时获得正确的值,但在下拉选择更改时无法获得正确的值。
下面是我的代码。 该按钮给出了正确的值,但下拉选择更改事件给出了先前的值而不是选定的值。
JS
function ViewModel() {
var self = this;
self.optionValues= ko.observableArray(["Test1", "Test2", "Test3"]);
self.selectedValue = ko.observable();
self.save = function() {
alert(self.selectedValue());
}
}
ko.applyBindings(new ViewModel());
HTML
<select data-bind="event:{ change: save},options: optionValues, value: selectedValue"></select>
<button data-bind="click: save">Save</button>
您应该直接subscribe
selectedValue
observable,而不是change
事件绑定绑定,并从那里调用您的逻辑:
function ViewModel() {
var self = this;
self.optionValues = ko.observableArray(["Test1", "Test2", "Test3"]);
self.selectedValue = ko.observable();
self.selectedValue.subscribe(function(newValue) {
self.save();
});
self.save = function() {
alert(self.selectedValue());
}
}
ko.applyBindings(new ViewModel());
网址:
<select data-bind="options: optionValues, value: selectedValue"></select>
<button data-bind="click: save">Save</button>
演示JSFiddle 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.