Как сделать элемент select с разными значениями, а затем текст с помощью Knockout.JS
Я понимаю, что
<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, например:
<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
Ответы
Ответ 1
Вы хотели бы отобразить массив ['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>