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

标签 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);

最佳答案

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

相关文章:

javascript - Haml中的Javascript注释

javascript - Google Chrome 中的 Knockout.js 输入类型日期数据绑定(bind)

javascript - twitter Bootstrap Accordion

javascript - 通过指令的 AngularJS 小部件/插件

javascript - 在一项服务中引用多个 API 调用( Angular )

javascript - AngularJS 函数

php - 如何使用angularjs上传图片

javascript - Javascript 中回调数组的不同参数

php - 父类别作为 wordpress 中的主菜单和子类别作为子菜单

javascript - 我正在尝试在我的 Angular 应用程序中直接创建自己的自定义,以便我看到 ladda 加载指示器