AngularJs: ng-model no se vincula a ng-verificado para input type = "radio", utilizando con ng-repeat [duplicate]
Esta pregunta ya tiene una respuesta aquí:
AngularJS: ng-model no vincula a ng-checked para casillas de verificación 5 respuestasEstoy tratando de usar la directiva ng-repeat con seguimiento por expresión, para mostrar botones de radio, cuando envío el valor se adjunta en el modelo y cuando vuelvo a abrir la página usando los valores en el modelo, el botón de radio no se muestra marcado. @
Lo he implementado con el modelo de cadena plana + valores de cadena. Pero esta vez estoy intentando con objetos.
<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 código
angular.module('app', [])
.controller('MyCtrl', ($scope) => {
$scope.peopleNew ={
person: {
"name": "Ringo",
"id": "R",
"subj": "Sci"
}
}
$scope.peopleServer= {
person: {"name":"Ringo"}
}
});
Según lo anterior, debería tener 4 botones de radio en la pantalla, puedo seleccionar 1 y enviar. Y luego, cuando lo abro nuevamente en mi modelo, la persona tiene el valor correcto que se guardó a fondong-value
pero aún en la interfaz de usuario, no veo el botón de radio como marcado para que se marque el nombre Ringo. Modelo tiene:
$scope.peopleServer= {
person: {name:"Ringo"}
}
Soluciones Intentadas
ng-check expression, aunque leí que ng-model y ng-check no deberían usarse juntas, idealmente usando el enlace del modelo debería estar marcado.explicació Leí acerca de que ng-repeat no se procesa correctamente, así que intenté volver a renderizar con fuerza pero no funcionó.Quitado ng-verificado de la plantilla todavía no funcionó.Track by funciona para valores de cadena en ng-repeat. En ng-options también funcionó para valores de objeto, pero luego no es un elemento de entrada sino un elemento de selecciónAlguien ayuda a entender, cuando vuelve a cargar o ya tiene el valor en el modelo, cómo se selecciona el botón de radio
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>
automáticamente? todos mis intentos anteriores no funcionan, me estoy perdiendo algo.