使用Knockout,如何通过ID显示列表中的项目名称?

时间:2014-03-21 15:34:56

标签: knockout.js

当我显示下拉列表时,我可以选择并让用户选择。如下所示

<select data-bind="options : $parent.items, optionsText :'name', optionsValue:'id', value : status"></select>

但是我想从商品ID中显示商品名称呢?

由于

2 个答案:

答案 0 :(得分:1)

不确定我是否理解了这个问题,请检查这是否是您想要的:

<select width="50" data-bind="foreach: items">
   <option data-bind="value: id, text:name, attr: {name: id}"></option>
</select>

http://jsfiddle.net/david_freire/3P8m4/

答案 1 :(得分:0)

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