• angular 列表全选和单选实例


    angular 全选举例如下

    // html代码
    <body ng-app="app">
      <div>
            <--全选功能-->
            <input type="checkbox" name="checkbox" ng-model="all" ng-click="updateAll(all)" ng-checked="all">全选
        <div>
            <span ng-repeat="row in list">
                <input type="checkbox" name="row.name" value="row.id" ng-click="updateSelect($event,row.id)" ng-checked="isSelected(row.id)" ng-model="all">
            </span>
            <label for="{{row.id}}">{{row.name}}</label>
        </div>
      </div>
    </body>
     
    // 控制器逻辑处理
    var control = app.module('textController', function($scope){
        $scope.all = false;// 判断是否为全选
        $scope.list = []; // 用来保存数据
        $scope.selected = [];//用来存储选中的复选框
        //调用api获取list值,赋值给$scope.list
     
        // 判断是否为全选
        $scope.updateAll = function(val) {
            if(!val) {
                $scope.selected = [];
                $scope.list.forEach( row => {
                    // 向后端发送选中数据的id。如果要发送一个对象,则可以将$scope.list直接赋值给$scope.selected
                    $scope.selected.push(row.id);
                })
            }else {
                // 置空选中的数组
                $scope.selected = [];
            }
        }
     
        // 判断选中的复选框
        $scope.updateSelect = function($event,id) {
            let checkbox = $event.target;
            let action = (checkbox.checked ? 'add' : 'delete')
            if(action == 'add' && $scope.selected.indexOf(id) == -1) {
                $scope.selected.push(id);
                
            }
            if(action == 'delete' && $scope.selected.indexOf(id) != -1) {
                 let idx = $scope.selected.indexOf(id);
                 $scope.selected.splice(idx,1);
            }
     
            if($scope.selected.length == $scope.list.length) {
                $scope.all = true;
            }else {
                $scope.all = false;
            }
        }
        
        // 判断是否选中
        $scope.isSelected = function(id) {
            return $scope.selected.indexOf(id) >= 0;
        }
        
    })
    

      

  • 相关阅读:
    《Docker Deep Dive》Note
    使用 Angular RouteReuseStrategy 缓存(路由)组件
    我的 VSCode 配置
    TCP/IP协议
    Fiddler代理手机抓包
    基于 Docker 和 GitLab 的前端自动化部署实践笔记
    Vue.js 2.x render 渲染函数 & JSX
    服务器免密登陆脚本
    gitlab+jenkins+pm2+rsync实现node的自动化部署
    nginx常用
  • 原文地址:https://www.cnblogs.com/haoran5544/p/16110827.html
Copyright © 2020-2023  润新知