angular 全选 全删 修改 排序

这里写图片描述


<head>
    <meta charset="utf-8" />
    <title></title>
</head>
<script src="js/jquery-3.2.1.min.js" type="text/javascript" charset="utf-8"></script>
<script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
<style type="text/css">
    .tab1 {
        width: 500px;
    }

    .tab2 {
        margin-top: 20px;
        width: 700px;
    }

    fieldset {
        margin-top: 20px;
        width: 700px;
    }
</style>

<body ng-app="myapp" ng-controller="mycontroller">
    <div class="div1">
        <h5>管理信息</h5>
        <table class="tab1">
            <tr>
                <td> <input type="button" value="批量删除" ng-click="pldele()" /></td>
                <td>用户名:<input type="text" ng-keydown="huiche($event)" ng-model="name_1" /></td>
                <td>
                    <select ng-change="xl()" ng-model="xlname" ng-init="xlname=ags[0]">
                        <option ng-repeat="ag in ags">{{ag}}</option>

                    </select>
                </td>
                <td><input type="button" value="添加" ng-click="add()" /></td>
            </tr>
        </table>

        <table border="1px" cellspacing="0" cellpadding="0" class="tab2">

            <tr>
                <td><input type="checkbox" ng-click="qu()" ng-model="fla" /></td>
                <td>姓名</td>
                <td>年龄</td>
                <td>城市</td>
                <td>录入日期</td>
                <td>操作</td>
            </tr>

            <tr ng-repeat="emp in emps">
                <td><input type="checkbox" ng-checked="dx1" ng-model="dx" ng-click="ck($index)" /></td>
                <td>{{emp.ename}}</td>
                <td>{{emp.eage}}</td>
                <td>{{emp.esite}}</td>
                <td>{{emp.edate|date:"yyyy-MM-dd HH-mm-ss"}}</td>
                <td>
                    <input type="button" value="修改" ng-click="xiugai($index)" ng-model="i" />
                    <input type="button" value="删除" />
                </td>
            </tr>

        </table>

        <fieldset ng-show="sos">
            <legend>用户添加</legend>
            姓名<input type="text" ng-model="name_2" /> <br/> 年龄
            <input type="text" ng-model="age_2" /> <br/> 城市
            <input type="text" ng-model="site_2" /> <br/> 录入日期
            <input type="date" ng-model="date_2" /> <br/>
            <input type="button" value="保存" ng-click="bz()" ng-model="i" />
        </fieldset>
    </div>

</body>
<script type="text/javascript">
    var mo = angular.module("myapp", []);
    mo.controller("mycontroller", function($scope) {

        $scope.ags = ["年龄正序", "年龄倒序"];

        var empss = [{
                "ename": "张三",
                "eage": "20",
                "esite": "北京",
                "edate": new Date(),
                "flas": false
            }, {
                "ename": "李四",
                "eage": "25",
                "esite": "北京",
                "edate": new Date(),
                "flas": false
            }

        ]

        $scope.emps = empss;
        //每行的checkbox选择状态要改变数组的值
        $scope.ck = function($index) {
            $scope.emps[$index].dx = !$scope.emps[$index].dx;
        };

        //批量删除
        $scope.pldele = function() {
            //删除之后数组会改变所以要反着遍历
            for(var i = $scope.emps.length - 1; i >= 0; i--) {
                var g = $scope.emps[i];
                if(g.dx) {
                    $scope.emps.splice(i, 1);
                }
            }
        };

        //模糊查询
        $scope.huiche = function($event) {
            var key = $event.keyCode;
            var enames = [];
            var name1 = $scope.name_1;
            if(key == 13) {
                for(var i = 0; i < empss.length; i++) {
                    if(empss[i].ename.indexOf(name1) != -1) {
                        enames.push(empss[i]);

                    }
                }
                $scope.emps = enames;
            }
        }

        //排序
        $scope.xl = function() {
            var xlnames = $scope.xlname;
            alert(xlnames)
            if(xlnames == "年龄正序") {
                $scope.emps.sort(function(a, b) {
                    return a.eage - b.eage;
                })

            } else {

                $scope.emps.sort(function(a, b) {
                    return b.eage - a.eage;
                })
            }

        }
        //点击添加显示点加的div输入框
        $scope.add = function() {
            $scope.sos = true;
        }

        //全选/全不选
        $scope.qu = function() {
            //删除之后数组会改变所以要反着遍历

            for(var i = $scope.emps.length - 1; i >= 0; i--) {
                $scope.emps[i].flas = $scope.fla;
            }
            //通过获取ng-model的值给ng-checked复制
            $scope.dx = $scope.fla;

            //批量删除
            $scope.pldele = function() {
                //删除之后数组会改变所以要反着遍历
                for(var i = $scope.emps.length - 1; i >= 0; i--) {
                    var g = $scope.emps[i].flas;
                    if(g) {
                        $scope.emps.splice(i, 1);
                    }
                }
                //全选框赋我faalse
                $scope.fla = false;
            };
        }

        $scope.xiugai = function($index) {
            $scope.sos = true;
            var nn = $scope.emps[$index].ename;
            var ee = $scope.emps[$index].eage;
            var ss = $scope.emps[$index].esite;
            var dd = $scope.emps[$index].edate;
            var ff = $scope.emps[$index].flas;
            //$scope.i会赋值下标
            $scope.i = $index;
            alert($scope.i)
            $scope.name_2 = nn;
            $scope.age_2 = ee;
            $scope.site_2 = ss;
            $scope.date_2 = dd;

        }

        $scope.bz = function() {
            alert($scope.i)
            //把添加和修改设同一个值   点击修改时$scope.i会赋值下标 
            //点击添加时$scope.i 没有被赋值所以是undefined
            //根据她来使用同一个布局


            if($scope.i == undefined) {
                //    添加
                var empes = {
                    "ename": $scope.name_2,
                    "eage": $scope.age_2,
                    "esite": $scope.site_2,
                    "edate": $scope.date_2,
                    "flas": false
                }

                empss.push(empes);
                $scope.emps = empss;
                //添加完成隐藏div
                $scope.sos = false;
                $scope.name_2 = "";
                $scope.age_2 = "";
                $scope.site_2 = "";
                $scope.date_2 = "";

            } else {
                //修改
                var newpenson = {
                    "ename": $scope.name_2,
                    "eage": $scope.age_2,
                    "esite": $scope.site_2,
                    "edate": $scope.date_2,
                    "flas": false
                }

                empss.splice($scope.i, 1, newpenson);
                $scope.emps = empss;
                $scope.sos = false;
                //修改后从新给 $scope.i赋值undefined
                $scope.i = undefined

            }

        }

    })
</script>

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值