我试图让dropdownlist的选择更改事件触发但不知何故事件没有被触发。
这是我的代码:
<select data-bind="options: choices, value: selectedChoice"></select>
var viewModel = function(){
var self= this;
self.test = ko.observable('a'),
self.choices= ["one", "two", "three"],
self.selectedChoice = ko.computed(function () {
var tempreview = self.test();
if (tempreview === "a") {
return "two";
}
else
return "three";
}),
self.selectedChoice.subscribe(function(newValue) {
alert("the new value is " + newValue);
})
};
var vm =new viewModel();
ko.applyBindings(vm);
以下是链接:http://www.jsfiddle.net/sajesh1985/73Q79/1/
我该怎么做?
答案 0 :(得分:0)
值绑定错误它应该是一些可观察的值。计算observable的第二件事是在测试属性上没有改变下拉选择,因此不会调用计算。在下拉列表中使用测试observable作为值绑定。
视图: -
<select data-bind="options: choices, value: test"></select>
答案 1 :(得分:0)
您可以在不使用self.test = ko.observable()
:
更新了HTML
<select data-bind="options: choices, value: test"></select>
更新了JS
var viewModel = function(){
var self= this;
self.test = ko.observable();
self.choices= ["one", "two", "three"];
self.test.subscribe(function(newValue) {
alert("the new value is " + newValue);
})
};
var vm =new viewModel();
ko.applyBindings(vm);
<强> JSFiddle 强>