敲除下拉列表初始值
Knockout Dropdown list Initial Value
我试图在按钮单击事件中设置下拉列表的初始值。但是它没有选择项目。
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);
声明
this.selectedSingle({ id: 3, name: "Banana"});
创建一个与列表中的对象不同的新对象。如果你想设置一个值,你需要提供与你的集合中相同的对象。您可以使用这样的代码将值设置为 Banana
:
this.selectedSingle(this.itemsSingle()[2]);
除了@dotnetom 提到的之外,您的点击处理程序中的 this
也存在范围问题:
http://jsfiddle.net/47Lpd42w/6/
this.Change = function(){
this.selectedSingle({ id: 3, name: "Banana"});
};
内在this
不是你想的那样。如果您查看附带的 jsfiddle,您会看到我结合了@dotnetom 所做的,另外我使用了一个 self
对象来让您的闭包正常工作。
我试图在按钮单击事件中设置下拉列表的初始值。但是它没有选择项目。
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);
声明
this.selectedSingle({ id: 3, name: "Banana"});
创建一个与列表中的对象不同的新对象。如果你想设置一个值,你需要提供与你的集合中相同的对象。您可以使用这样的代码将值设置为 Banana
:
this.selectedSingle(this.itemsSingle()[2]);
除了@dotnetom 提到的之外,您的点击处理程序中的 this
也存在范围问题:
http://jsfiddle.net/47Lpd42w/6/
this.Change = function(){
this.selectedSingle({ id: 3, name: "Banana"});
};
内在this
不是你想的那样。如果您查看附带的 jsfiddle,您会看到我结合了@dotnetom 所做的,另外我使用了一个 self
对象来让您的闭包正常工作。