我正在尝试在按钮点击事件上设置下拉列表的初始值。但它没有选择项目。
var viewModel = function () {
this.itemsSingle = ko.observableArray([
{ id: 1, name: "Apple" },
{ id: 2, name: "Orange"},
{ id: 3, name: "Banana"}
]);
this.selected = ko.observableArray();
this.selectedSingle = ko.observable();
this.Change = function(){
this.selectedSingle({ id: 3, name: "Banana"});
};
};
var vm = new viewModel();
ko.applyBindings(vm);

答案 0 :(得分:1)
除了@dotnetom提到的内容之外,您的点击处理程序中还存在this
的范围问题:
http://jsfiddle.net/47Lpd42w/6/
this.Change = function(){
this.selectedSingle({ id: 3, name: "Banana"});
};
内在this
不是你想象的那样。如果你看一下附加的jsfiddle,你会看到我结合了@dotnetom所做的事情,而且我使用了一个self
对象来让你的闭包正常工作。
答案 1 :(得分:0)
声明
this.selectedSingle({ id: 3, name: "Banana"});
创建一个与列表中的对象不同的新对象。如果要设置值,则需要提供集合中的相同对象。您可以使用此类代码将值设置为Banana
:
this.selectedSingle(this.itemsSingle()[2]);