Я динамически создаю выборки в нокауте следующим образом:
<h5 data-bind="visible: selectedChildren() > 0">@Model.SelectChildrenAge</h5>
<input type="hidden" name="ac1" data-bind="value: selectedChildrenAgesCsv()"/>
<div class="children-age-container__ages" data-bind="foreach: childrenAges">
<select class="children-age-container__ages--select" data-bind="options: $data, optionsCaption: 'Age', value: $parent.selectedChildrenAges[$index]"></select>
</div>
В моей модели я массив observableArray, к которому нужно привязать динамически создаваемое значение выбора:
selectedChildrenAges: KnockoutObservableArray<number> = ko.observableArray([
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0
]);
Однако,кажется, что они всегда равны 0, даже если фактическое создание селектов работает как шарм.Проблема здесь в том, что я не хочу публиковать то, что есть в полях выбора, как есть, бэкэнд требует, чтобы я публиковал это как строку CSV.Что я сделал, так это создал метод подписки, который обновит selectedChildrenAgesCsv
соответственно:
this.selectedChildrenAges.subscribe(() => {
console.log((this.selectedChildrenAges as any).join(", "));
this.selectedChildrenAgesCsv((this.selectedChildrenAges as any).filter(age => age > 0).join(","));
Мой журнал консоли никогда ничего не выводит здесь, и я вроде как потерян, как с этим справиться.Я пробовал так много разных способов, но, похоже, ничего не работает.