javascript - Knockout -> 将元素绑定(bind)到 Select 的值

标签 javascript jquery knockout.js

在下面的select中,我绑定(bind)了一个可观察数组。

<select id="selectProtocols" data-bind="options: optionsAvailable, optionsCaption:'Selecione...', optionsText: 'SimpleDescription', optionsValue:'???'"></select>

我相信很容易看出每个选项的文本都是一个属性“SimpleDescription”,效果很好。我现在需要的是 selectvalue 是元素本身!

我怎样才能做到这一点?

最佳答案

分配$dataoptionsValue这里没有意义,你必须阅读什么optionsValue确实[1]。它基本上只是设置 value <option> 的属性您的 <select> 下的元素。所以你不能将其设置为正在选择的JS对象,只能将其设置为文本。

<select data-bind="
    options: optionsAvailable,
    optionsCaption: 'Selecione...',
    optionsText: 'SimpleDescription',
    optionsValue: 'SomeOtherPropertyThatEvaluatesToText',    
    value: selectedOption"></select>

value绑定(bind)应该接收一个将被设置为所选 JS 对象的可观察对象。并且,如果您愿意,您可以给 optionsValue一个函数,它接受这个 JS 对象并将其转换为文本,如下所示:

<select data-bind="
    options: optionsAvailable,
    optionsCaption: 'Selecione...',
    optionsText: 'SimpleDescription',
    optionsValue: JSON.stringify,    
    value: selectedOption"></select>

这是一个可以使用的示例 fiddle :http://jsfiddle.net/43t9dzxt/1/

[1] http://knockoutjs.com/documentation/options-binding.html

关于javascript - Knockout -> 将元素绑定(bind)到 Select 的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141342/

相关文章:

javascript - 使用 Jest-Puppeteer (Javascript) 进行 HTML Canvas 测试

javascript - REST 对 SharePoint 值求和,无需 else if

javascript - 更改类选择器不适用于附加项目

jquery - 如何选择无序列表中包含已选中的复选框的所有列表项?

javascript - Knockout Bindings 此功能需要什么

javascript - 指令中范围的数组属性在引用时被清空

javascript - 使用带有文本区域和验证的 jQuery 提交 html 表单

javascript - 将 jQuery 返回的字符串与另一个字符串进行比较

javascript - 如何连接文本绑定(bind)中使用的可观察值的值?

ios - 在 Knockout 下拉列表中覆盖默认的 Next/Previous iOS