Я знаю, что есть несколько ответов на этот пост, но я не видел того, где есть несколько свойств, и они находятся внутри массива. И это решение, кстати, для 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"}]
Ваша проблема в том, что ваш <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">