AngularJs: ng-модель не привязана к ng-checked для ввода type = «radio», используется с ng-repeat [duplicate]
На этот вопрос уже есть ответ:
AngularJS: ng-модель не привязана к ng-check для флажков 5 ответовЯ пытаюсь использовать директиву ng-repeat с отслеживанием по выражению, чтобы отображать переключатели, когда я отправляю значение, которое привязывается к модели, и когда я снова открываю страницу, используя значения в модели, переключатель не показывает флажок.
Я реализовал то же самое с плоской строковой моделью + строковыми значениями. Но на этот раз пытаюсь с предметами.
<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>New TRY</p>
<ul>
<li ng-repeat="i in peopleNew.person">
<label>
{{i}}
<input type="radio" ng-model="peopleServer.person"
name="same" ng-value="i" />
</label>
</li>
</ul>
</form>
<div>
JS код
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.peopleNew ={
person: {
"name": "Ringo",
"id": "R",
"subj": "Sci"
}
}
$scope.peopleServer= {
person: {"name":"Ringo"}
}
});
Как указано выше, у меня должно быть 4 переключателя на экране, я могу выбрать 1 и отправить. И затем, когда я снова открываю его в моей модели, человек имеет правильное значение, которое было сохранено полностьюng-value
но все же в интерфейсе я не вижу переключатель, так как проверено имя Ринго. Модель есть:
$scope.peopleServer= {
person: {name:"Ringo"}
}
Пробные решения
ng-check выражение, хотя я читал, что ng-model и ng-check не следует использовать вместе, в идеале при использовании привязки модели его следует проверять. Объяснение Я читал о том, что ng-repeat не рендерится должным образом, поэтому я попытался рендерить принудительно, но не сработало. Удалил ng-проверил из шаблона все равно не получилось.Track by работает для строковых значений в ng-repeat. В ng-options он работает и для значений объекта, но тогда это не входной элемент, а элемент selectКто-нибудь поможет понять, когда вы перезагружаете или у вас уже есть значение в модели, как выбрать переключатель
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.peopleNew ={
person: {
"name": "Ringo",
"id": "R",
"subj": "Sci"
}
}
//uncomment for testing.
$scope.peopleServer= {
person: {"name":"Ringo"}
}
});
<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>New TRY</p>
<ul>
<li ng-repeat="i in peopleNew.person">
<label>
{{i}}
<input type="radio" ng-model="peopleServer.person"
name="same" ng-value="i" />
</label>
</li>
</ul>
</form>
<div>
автоматически? все мои попытки выше не работают, я что-то упустил.