16

我明白那个

<p>Destination country: <select data-bind="options: availableCountries"></select></p>

<script type="text/javascript">
    var viewModel = {
        availableCountries : ko.observableArray(['France', 'Germany', 'Spain']) // These are the initial options
    };

    ko.applyBindings(viewModel);
</script> 

将创建一个选择元素,如:

<select data-bind="options: availableCountries">
    <option value="France">France</option>
    <option value="Germany">Germany</option>
    <option value="Spain">Spain</option>
</select>

但如果我希望它是这样的:

<select data-bind="options: availableCountries">
    <option value="1">France</option>
    <option value="2">Germany</option>
    <option value="3">Spain</option>
</select>

我的代码是什么?

我知道我可以使用 optionsText 来填充选项,但 optionsValue 似乎对我不起作用

干杯,丹尼尔

4

1 回答 1

27

您可能希望将数组映射['France', 'Germany', 'Spain']到具有 和 的单独属性的value结构text

例如,

[
   { value: 1, name: 'France' }, 
   { value: 2, name: 'Germany' }, 
   { value: 3, name: 'Spain' }
]

然后,您可以像这样绑定它:

<select data-bind="options: availableCountries, optionsText: 'name', optionsValue: 'value'"></select>
于 2012-05-02T13:43:05.927 回答