有没有一种简单的方法可以告诉 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;
});
关于knockout.js - 如何将文本标签绑定(bind)到 knockout 中下拉列表的选定选项值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10949384/