Я думаю, что у меня есть какой-то особый код, так как все, что я мог найти в Google, было «слишком простым» для моей проблемы, и это также не помогло найти решение самостоятельно, к сожалению. У меня есть группа радиокнопок из 2 радио. Я перебираю данные «типа» из бэкэнда, чтобы создать переключатели. Моя проблема заключается в привязке данных: когда я хочу отредактировать объект, его «тип» установлен правильно, но не зарегистрирован представлением, поэтому он не выбирает нужный параметр.
Следуя моей ситуации:
Серверная часть предоставляет мне это как "typeList":
[
{"text":"cool option","enumm":"COOL"},
{"text":"option maximus","enumm":"MAX"}
]
HTML-код:
<span ng-repeat="type in typeList track by type.enumm">
<input
type="radio"
name="type" required
ng-model="myCtrl.object.type"
ng-value="type">
{{type.text}}
</span>
Некоторое объяснение
Я не хочу использовать "голый" текст, я хочу использовать какой-то идентификатор - в данном случае это перечисление. Выбранное значение должно быть полным «типом», а не только «type.text», поскольку бэкэнд ожидает тип, а не простой строкой. Так что все, что я делаю с этим, всегда является пакетом, type.text предназначен для форматированного/интернационализированного текста и т. д.
Предварительный выбор работает, устанавливая это в контроллере: this.object.type = typeList[0];
Первый переключатель уже выбран, замечательно.
Но почему он не выбран при редактировании объекта. Я сделал «журнал» в HTML с помощью {{myCtrl.object.type}}
, и результат {"text":"cool option","enumm":"COOL"}
. То же, что и при предварительном выборе. Я уже работаю с той же «техникой», используя выбор входных данных, и она отлично работает. Я также нашел некоторые результаты Google, в которых говорится: «используйте $parent из-за родительской/дочерней области». Но 1) я не понял это прямо и 2) думаю, что проблема не в этом, так как я использую область действия контроллера, а не область $, или это неправильное мышление?
Это может быть объяснено плохо, извините, если так, но я надеюсь, что кто-то 1) получит то, что я хочу, и 2) знает решение для этого.
Благодарю вас!