Я пытаюсь получить числовой массив для привязки к элементу select. Я использую числовой массив, потому что это то, что возвращает сервер. У меня есть установка jsFiddle, демонстрирующая проблему.Нокаут не будет обрабатывать числовой массив для множественного списка выбора
HTML
<select data-bind="selectedOptions: EnvironmentIds" id="EnvironmentIds" multiple="multiple" name="EnvironmentIds">
<option selected="selected" value="1">Hosting</option>
<option value="2">Internal</option>
</select>
Script
function IncidentViewModel() {
var self = this;
//Properties
self.EnvironmentIds = ko.observableArray([1]);
}
var incidentViewModel = new IncidentViewModel();
ko.applyBindings(incidentViewModel);
Если вы просто переключиться на массив строк, как так:
ko.observableArray(["1"])
Затем код работает, как ожидалось. Однако я не хочу использовать строковый массив, поскольку это не тип данных. Есть ли способ обойти это или я пропустил что-то простое?
Значения параметров являются строками, даже если они выглядят как числа. Насколько важно, чтобы 'EnvironmentIds' содержали числа? –
Моя база данных и контроллер ожидают цифры, так что это довольно важно, я полагаю. Я думаю, что я просто создаю свойство только для чтения, которое возвращает 'string []', который я могу передать клиенту, чтобы Knockout был счастлив. –