Радиокнопка не проверяется по умолчанию в зависимости от значения модели.
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.decideVote ={
vote: {
yes: "Yes",
no: "No",
maybe: "Maybe"
//if i have more values here, i will get more radio buttons
}
}
//uncomment for testing.
$scope.serverVoted= {
vote: {yes:"Yes"}
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<form name="myForm">
<p>Select Vote</p>
<ul>
<li ng-repeat="i in decideVote.vote">
<label>
{{i}}
<input type="radio" name="same"
ng-model="serverVoted.vote" ng-value="i" />
</label>
</li>
</ul>
</form>
<div>
Как упоминалось в документах angularjs, радио должно проверяться автоматически в зависимости от значения модели. Я вставлю здесь рабочий образец, но реальный сценарий такой:
Компонент, определенный как radioButtonsFromJsonObj, может содержать много элементов как radioButtonsFromJsonObj и может использовать другой объект Json для заполнения радиокнопки, но модель для определенной группы радиокнопок одинакова.
Но когда я снова открываю страницу и модель имеет правильные значения, переключатели не проверяются в соответствии с моделью.
Также фактический сценарий похож на компонент, генерирующий шаблон и в котором привязка передается для динамического получения ngModel для каждого элемента. NgModel устанавливается правильно, но при попытке открыть и прочитать данные с сервера, он не проверяется автоматически. Поэтому попытался создать такой же сценарий выше.
Внутри компонента есть блок init и конструктор, просто создайте переменную $ ctrl.
привязка следующая
bindings: {
model: '=ngModel'
}
в шаблоне есть ngRepeat и внутри каждой итерации генерируется шаблон, подобный этому.
<input type="radio" name="same" ng-model="$ctrl.model" ng-value="i" />
и основной html может содержать много элементов.
<radioButtonsFromJsonObj ng-model="request.Voting1"> </radioButtonsFromJsonObj >
<radioButtonsFromJsonObj ng-model="request.Voting2"> </radioButtonsFromJsonObj >