Как сделать элемент 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', '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

4b9b3361

Ответ 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>