使用ng-model标记复选框ANGULAR.JS的值

时间:2017-02-13 14:05:05

标签: javascript angularjs

http://jsfiddle.net/32m1mbkL/

我有一系列复选框,我用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);

1 个答案:

答案 0 :(得分:1)

您的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