【发布时间】:2014-03-22 04:54:46
【问题描述】:
当我显示下拉菜单时,我可以进行选择并让用户选择。如下所示
<select data-bind="options : $parent.items, optionsText :'name', optionsValue:'id', value : status"></select>
但是我想从项目 ID 中显示项目名称呢?
谢谢
【问题讨论】:
标签: knockout.js
当我显示下拉菜单时,我可以进行选择并让用户选择。如下所示
<select data-bind="options : $parent.items, optionsText :'name', optionsValue:'id', value : status"></select>
但是我想从项目 ID 中显示项目名称呢?
谢谢
【问题讨论】:
标签: knockout.js
不确定我是否理解了这个问题,请检查这是否是您想要的:
<select width="50" data-bind="foreach: items">
<option data-bind="value: id, text:name, attr: {name: id}"></option>
</select>
【讨论】:
3 个选项(我更喜欢 #2):
(1) 设置 optionsValue: 'name' 而不是 id。根据您对问题的描述,这是一个有效的解决方案,但我敢打赌这不是您想要的。
小提琴:http://jsfiddle.net/simonlevasseur/3DYh4/
<select data-bind="options : items, optionsText: 'name', optionsValue: 'name', value : status"></select>
<span data-bind="text: status"></span>
(2) 从绑定中删除 optionsValue,这样您就可以保存整个对象,而不仅仅是保存 id。
小提琴:http://jsfiddle.net/simonlevasseur/nCNXJ/
<select data-bind="options : items, optionsText: 'name', value : status"></select>
<span data-bind="text: status().name"></span>
(3) 在列表中搜索与 id 匹配的项目。
小提琴:http://jsfiddle.net/simonlevasseur/aW23N/
var color = ko.utils.arrayFirst(colors, function (color) {
return color.id === status;
});
【讨论】: