首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Angular on按钮单击中选择多个复选框

在Angular on按钮单击中选择多个复选框
EN

Stack Overflow用户
提问于 2017-05-30 14:16:18
回答 2查看 1.8K关注 0票数 0

我的HTML代码中有一个表,其中的行是由AngularJS ng-repeat生成的。每行在第一列中包含一个复选框,在相应列中包含其他数据。当点击另一个div中的按钮时,我试图将所有的复选框都标记为选中。

代码语言:javascript
复制
<tbody>
  <tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
    <td name="checkbox">
      <input type="checkbox" ng-model="row.checked" ng-style="row.checkboxStyle" ng-click="setSelectedRow(row)" />
    </td>
    <td>{{ row.data1 }}</td>
    <td>{{ row.data2 }}</td>
  </tr>
</tbody>

该按钮如下所示:

代码语言:javascript
复制
<div class="btn-group">
	<button type="button" id="selectAll" class="btn btn-default" title="Select All" ng-click="selectAllGrid()">Select All</button>
</div>

单击将该特定行添加到数组的复选框时,将调用一个方法。如果我在单击按钮时将复选框标记为选中,将如何调用该方法。

EN

回答 2

Stack Overflow用户

发布于 2017-05-30 14:20:40

使用指令ng-checked

代码语言:javascript
复制
<tbody>
  <tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
    <td name="checkbox">
      <input type="checkbox" ng-checked="checkAll" ng-model="row.checked" ng-style="row.checkboxStyle" ng-click="setSelectedRow(row)" />
    </td>
    <td>{{ row.data1 }}</td>
    <td>{{ row.data2 }}</td>
  </tr>
</tbody>

在您的按钮函数中

代码语言:javascript
复制
selectAllGrid(){
 $scope.checkAll=true;
}
票数 2
EN

Stack Overflow用户

发布于 2017-05-30 14:39:43

你可以这样做:

代码语言:javascript
复制
<table>
    <tbody>
      <tr ng-repeat="row in myObject track by $index" ng-class-even="'alternate-row'">
        <td name="checkbox">
          <input type="checkbox" ng-model="row.checked" ng-style="row.checkboxStyle" />{{row.checked}}
        </td>
        <td>{{ row.data }}</td>
      </tr>
    </tbody>
  </table>


  <div class="btn-group">
    <button type="button" id="selectAll" class="btn btn-default" title="Select All" ng-click="selectAllGrid()">Select All</button>
  </div>

在你的控制器中:

代码语言:javascript
复制
app.controller('MainCtrl', function($scope) {
  $scope.allchecked  = false;

  $scope.selectAllGrid = function(){
    console.log($scope.allchecked);
    $scope.allchecked = !$scope.allchecked
   for(var i =0; i<$scope.myObject.length; i++) {
     $scope.myObject[i].checked = $scope.allchecked ;
   }
  }

  $scope.myObject = [
      {"data": "sdfsdf"},
      {"data": "asdfassafs"},
      {"data": "asesfrsaedfsadfsadsd"}
    ]
});

工作柱塞here

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44254817

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档