AngularJS Соответствующая ng-модель для выбора и радио не синхронизируется

Я знаю, что есть несколько ответов на этот пост, но я не видел того, где есть несколько свойств, и они находятся внутри массива. И это решение, кстати, для ES6.

Для иллюстрации предположим, что у нас есть массив с именем person с объектами внутри:

 let Person = [{id:1, Name: "John"}, {id:2, Name: "Susan"}, {id:3, Name: "Jet"}]

Итак, вы можете добавить свойство с помощью соответствующее значение. Предположим, мы хотим добавить язык со значением по умолчанию EN.

Person.map((obj)=>({...obj,['Language']:"EN"}))

Теперь массив Person будет выглядеть следующим образом:

Person = [{id:1, Name: "John", Language:"EN"}, 
{id:2, Name: "Susan", Language:"EN"}, {id:3, Name: "Jet", Language:"EN"}]
0
задан Joseph Sjoblom 15 January 2019 в 19:06
поделиться

1 ответ

Ваша проблема в том, что ваш <select/> хранит объект category, в то время как ваш <input type="radio"> хранит строку category.tagCategoryName:

<select name='category' class="form-control" ng-model="selection.category" ng-options="category as category.tagCategoryName for category in categories"
             required>
        <option value="" disabled>Select</option>
</select>

<input type="radio" name='category' ng-model="selection.category" id="category{{category.id}}" ng-value="category.tagCategoryName">

В ng-options у вас есть category as category.tagCategoryName for category in categories , который говорит: «Сохраняйте объект категории в моей области и используйте tagCategoryName в качестве отображаемого имени для каждой категории в категориях»

Для ваших радиостанций у вас установлено ng-value в качестве строки category.tagCategoryName так вот что привязано к вашей сфере. Итак, выбор использовал объект, радио использовал строку. Я исправил это, обновив радио, чтобы просто использовать category в качестве значения:

<input type="radio" name='category' ng-model="selection.category" id="category{{category.id}}" ng-value="category">

Вот рабочий планер .

0
ответ дан Michael Kucinski 15 January 2019 в 19:06
поделиться
Другие вопросы по тегам:

Похожие вопросы: