我有一系列使用 ng-repeat 动态创建的复选框。 我希望根据 true 或 false 值标记每个复选框。但我无法让其中一个被标记,而且当一个被标记时,其他的也被标记。 我做错了什么?
<div ng-controller="Ctrl">
<div class="wrapper">
<div class="container-fluid">
<table border='1'>
<tr>
<th rowspan="3">Tipo de Contenido</th>
<th colspan="{{aTipoUsuarios.length * 3}}">
Tipo de Usuarios
</th>
</tr>
<tr>
<td ng-repeat="usu in aTipoUsuarios" colspan="3">
{{usu}}
</td>
</tr>
<tr>
<td ng-repeat-start="usu in aTipoUsuarios" ><i class='glyphicon glyphicon-book' tile='Permiso de Lectura'></i></td>
<td ><i class='glyphicon glyphicon-pencil' tile='Permiso de Escritura'></i></td>
<td ng-repeat-end><i class='glyphicon glyphicon-trash' tile='Permiso de Eliminación'></i></td>
</tr>
<tr>
<tr ng-repeat="rol in aRoles">
<td>{{rol.tipo_contenido}}</td>
<td ng-repeat-start='check in rol.tipo_usuario'>
<input type="checkbox" ng-model='rol.lectura' class="form-control">
</td>
<td>
<input type="checkbox" ng-model='rol.escritura' class="form-control">
</td>
<td ng-repeat-end>
<input type="checkbox" ng-model='rol.eliminacion' class="form-control">
</td>
</tr>
</table>
</div>
</div>
</div>
$scope.aRoles=
[
{
"tipo_contenido": "articulos",
"tipo_usuario":{
"administrador":
{"escritura":true, "lectura":true, "eliminacion":true},
"reportante":
{"escritura":true, "lectura":false, "eliminacion":true}
}
},
{
"tipo_contenido": "informacion",
"tipo_usuario":{
"administrador":
{"escritura":true, "lectura":false, "eliminacion":true},
"reportante":
{"escritura":false, "lectura":true, "eliminacion":false}
}
},
]
$scope.aTipoUsuarios=Object.keys($scope.aRoles[0].tipo_usuario);
最佳答案
您的 ng-model
定义始终指向同一个对象。
<input type="checkbox" ng-model='rol.lectura' class="form-control">
由于您的中继器中的 check
实际上在正确的位置循环,因此您只需将 rol
替换为 check
即可获得正确的结果引用:
<input type="checkbox" ng-model='check.lectura' class="form-control">
这是您的fixed fiddle
关于javascript - 使用 ng-model 标记复选框的值 ANGULAR.JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42205979/