我正在尝试在选择元素上使用值绑定,如本小提琴中所述:http://jsfiddle.net/MikeEast/nM6dd/2/ http://jsfiddle.net/MikeEast/nM6dd/2/
但是,我似乎无法设置所选选项(值绑定)。
我知道我可以使用 optionsValue 绑定,但这会使值成为字符串而不是对象,这是不可取的。如果这是唯一的方法,我该如何确保所选选项写回视图模型?
Thanks!
这是解决方案。您必须添加该属性optionsValue: 'id'
到数据绑定。
您还必须在 viewModel 中放置一个返回所选对象的函数。
var viewModel = function() {
this.items = ko.observableArray([
{ id: 1, name: "Apple" },
{ id: 2, name: "Orange"},
{ id: 3, name: "Banana"}
]);
this.selectedItemId = ko.observable(3);
this.selectedItem = function() {
var self = this;
return ko.utils.arrayFirst(this.items(), function(item) {
return self.selectedItemId() == item.id;
});
}.bind(this);
};
var vm = new viewModel();
ko.applyBindings(vm);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/1.2.1/knockout-min.js"></script>
<select data-bind="options: items, optionsText: 'name', optionsValue: 'id', value: selectedItemId"></select>
<span data-bind="text: selectedItem().name"></span>
Cheers!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)