通过Knockout向选项添加额外属性

时间:2014-05-29 07:20:43

标签: knockout.js

我需要额外的选项价值。 通过选项填充以下选项:groupItems,其中包含' id','描述'和一个'期间'。

    <select name="cb_group_1130" id="cb_group_1130" data-bind="options: groupItems(1130), optionsText : 'description',  optionsValue : 'id', optionsPeriod : 'period', value : selectedItem(1130)">
    <option value="0">First</option>
    <option value="1637">second</option>
    <option value="1638">third</option
</select>

在上面的例子中,optionsPeriod:&#39;期间&#39;不起作用......

我想要完成Knockout生成的选项显示:

<option value="0" period="2" >First</option>

1 个答案:

答案 0 :(得分:2)

您需要使用post process the rendered option elementsoptionsAfterRender选项:

在您的视图模型中:

this.setPeriod = function (option, item) {
        ko.applyBindingsToNode(option, {
            attr: {
                period: item.period
            }
        }, item);
    }

演示JSFiddle