knockout.js - 如何将文本标签绑定(bind)到 knockout 中下拉列表的选定选项值?

标签 knockout.js

有没有一种简单的方法可以告诉 knockout 将下拉列表的选定值(不是 id,标签)绑定(bind)到另一个字段?我有一个中等复杂的用户界面,我想要一种干净的方法,不仅可以 Hook ID,还可以在选项更改时将其标签挂接到字段。

类似于:

 <select data-bind="options: dropDownLists.Region,optionsText:'RegionName',optionsValue:'RegionId',value:regionFilterId,label:regionFilterName" >

标签绑定(bind)与值绑定(bind)做同样的事情,但使用选项的标签。我怀疑我需要自定义绑定(bind),但我想避免重新发明轮子。

最佳答案

不确定我是否正确理解了您的要求,但如果您不关心 HTML,为什么不这样做:

<select data-bind="options: dropDownLists.Region,optionsText:'RegionName',value:regionFilter"></select>

未使用“optionsValue”绑定(bind),因此“value”绑定(bind)仅使用 ID 更新可观察对象 no,但使用完整对象。这使得编写两个计算的可观察对象变得容易,它们返回所选区域的 ID 和名称:

self.regionFilter = ko.observable();

self.regionFilterId = ko.computed(function() {
    var region = self.regionFilter();
    if (region) return region.RegionId;
});

self.regionFilterName = ko.computed(function() {
    var region = self.regionFilter();
    if (region) return region.RegionName;
});

http://jsfiddle.net/VA7aF/

关于knockout.js - 如何将文本标签绑定(bind)到 knockout 中下拉列表的选定选项值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10949384/

相关文章:

javascript - 当绑定(bind)中的值更改时, knockout 计算函数不会更新

javascript - Knockout.js 自定义函数返回函数而不是值

javascript - 如何在 knockout.js 中的 foreach 中使用计算方法

javascript - 如何使用 Breeze 导航属性对 knockout 中的 html 表进行排序?

javascript - Knockout JS 不清除组件

knockout.js - knockout js中多选的自定义绑定(bind)

javascript - 模板中的knockoutjs : binding to an observable property outside of an array,

javascript - 如何在 observableArray 中订阅 observable

css - 使用 knockoutJs css 绑定(bind)时如何删除文本区域边框(轮廓)?

jquery - knockout 内联编辑绑定(bind)