knockout.js – KnockoutJs中的值绑定在具有复杂类型时无法选择

前端之家收集整理的这篇文章主要介绍了knockout.js – KnockoutJs中的值绑定在具有复杂类型时无法选择前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在select元素上使用值绑定,如这个小提琴: http://jsfiddle.net/MikeEast/nM6dd/2/所述

但是,我似乎无法设置选定的选项(值绑定).

我知道我可以使用optionsValue绑定,但是这个值将是一个字符串,而不是一个不优选的对象.如果这是唯一的办法,我该如何确保选择的选项被写回到视图模型?

谢谢!

解决方法

这是解决方案.您必须将属性optionsValue:’id’添加到数据绑定.
您还必须在您的viewmodel中放置一个函数来返回所选对象.

HTML

<select data-bind="options: items,optionsText: 'name',optionsValue: 'id',value: selectedItemId"></select>
<span data-bind="text: selectedItem().name"></span>

JS

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);

干杯!

原文链接:https://www.f2er.com/js/154217.html

猜你在找的JavaScript相关文章