如何使用Knockout.JS创建具有不同值的select元素,然后创建文本

如何使用Knockout.JS创建具有不同值的select元素,然后创建文本,select,knockout.js,Select,Knockout.js,我明白 <p>Destination country: <select data-bind="options: availableCountries"></select></p> <script type="text/javascript"> var viewModel = { availableCountries : ko.observableArray(['France', 'Germany', 'Spai

我明白

<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> 
目的地国家:

var viewModel={ availableCountries:ko.observableArray(['France'、'Germany'、'Spain'])//这些是初始选项 }; 应用绑定(视图模型);
将创建一个选择元素,如:

<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似乎不适合我

干杯,
Daniël

您希望将数组
['France'、'Germany'、'Spain']
映射到一个结构,该结构将对
值和
文本具有单独的属性

比如说,

[
   { value: 1, name: 'France' }, 
   { value: 2, name: 'Germany' }, 
   { value: 3, name: 'Spain' }
]
然后,您可以将其绑定为:

<select data-bind="options: availableCountries, optionsText: 'name', optionsValue: 'value'"></select>


他们的文档中对这一点做了很好的介绍:@JasonGoemaat我不理解他们给出的示例,也没有让它起作用,我将努力解决这个问题,感谢
目的地国家:

var options=[{value:1,name:'France'},{value:2,name:'spaine'},{value:3,name:'Germany'}]var viewModel={availableCountries:ko.observearray(options)};ko.applyBindings(viewModel);
答案很好…!!+1