您的位置:首页 > Web前端 > AngularJS

AngularJS表格数据全选反选批量删除,删除的数据添加到数组里

2017-10-24 16:10 591 查看
<!DOCTYPE html>

<html>

    <head>

        <meta charset="UTF-8">

        <title></title>

        <script type="text/javascript" src="../AngularJS/angular.js" ></script>

        <script>

            var app = angular.module("myApp",[]);

            app.controller("myCtrl",function($scope){

                $scope.shops = [{

                    name:"qq1",

                    price:12.9,

                    num:3,

                    state:false

                },{

                    name:"wx1",

                    price:22,

                    num:5,

                    state:false

                },{

                    name:"qq2",

                    price:33,

                    num:6,

                    state:false

                },{

                    name:"wx2",

                    price:44,

                    num:4,

                    state:false

                }];

                

                //增加

                $scope.add = function(index){

                    $scope.shops[index].num += 1;

                }

                //减少

                $scope.reduce = function(index){

                    if($scope.shops[index].num>1){

                        $scope.shops[index].num -= 1;

                    }else{

                        if(window.confirm("要删除"+$scope.shops[index].name+"吗?")){

                            $scope.shops.splice(index,1);

                        }else{

                            

                        }

                    }

                }

                

                //获取总价

                $scope.allPrice = function(){

                    var all = 0;

                    for(index in $scope.shops){

                        all += $scope.shops[index].price * $scope.shops[index].num;

                    }

                    return all;

                }

                

                //全选

                $scope.selectAll = false;

                $scope.selectAllFun = function(){

                    if($scope.selectAll){

                        for(index in $scope.shops){

                            $scope.shops[index].state = true;

                        }

                    }else{

                        for(index in $scope.shops){

                            $scope.shops[index].state = false;

                        }

                    }

                }

                

                //反选

                $scope.checkSelectAll = function(){

                    var flag = false;

                    for(index in $scope.shops){

                        if($scope.shops[index].state){

                            

                        }else{

                            flag = true;

                        }

                    }

                    //至少有一个没有被选中

                    if(flag){

                        $scope.selectAll = false;

                    }else{

                        $scope.selectAll = true;

                    }

                }

                

                //批量删除

                $scope.deleteSelected = function(){

                    var selectedShop = [];

                    for(index in $scope.shops){

                        if($scope.shops[index].state){

                            selectedShop.push($scope.shops[index].name);

                        }

                    }

                    

                    if(selectedShop.length>0){

                        for(i1 in selectedShop){

                            for(i2 in $scope.shops){

                                if(selectedShop[i1] == $scope.shops[i2].name){

                                    $scope.shops.splice(i2,1);

                                }

                            }

                        }

                    }else{

                        alert("请先选择")

                    }

                }

                

                //判断数据源的长度

                $scope.getSize = function(){

                    if($scope.shops.length > 0 ){

                        return false;

                    }else{

                        return true;

                    }

                }

            });

        </script>

    </head>

    <body ng-app="myApp" ng-controller="myCtrl">

        <center>

            <h3>我的购物车</h3>

            <button ng-click="deleteSelected()">批量删除</button><br /><br />

            <table ng-hide="getSize()" border="1 solid blue" cellpadding="10" cellspacing="0">

                <thead>

                    <tr>

                        <th><input type="checkbox" ng-model="selectAll" ng-click="selectAllFun()"/></th>

                        <th>name</th>

                        <th>price</th>

                        <th>number</th>

                        <th>totalPrice</th>

                        <th>option</th>

                    </tr>

                </thead>

                <tbody>

                    <tr ng-repeat="shop in shops">

                        <td><input type="checkbox" ng-model="shop.state" ng-click="checkSelectAll()"/></td>

                        <td>{{shop.name}}</td>

                        <td>{{shop.price | currency:"¥"}}</td>

                        <td>

                            <button ng-click="reduce($index)">-</button>

                            <input type="number" ng-model="shop.num" style="width: 30px;"/>

                            <button ng-click="add($index)">+</button>

                        </td>

                        <td>{{shop.price * shop.num | currency:"¥"}}</td>

                        <td><button>删除</button> </td>

                    </tr>

                    <tr>

                        <td colspan="6">总价为:<span ng-bind="allPrice() | currency:'¥'"></span></td>

                    </tr>

                </tbody>

            </table>

            

            <span ng-show="getSize()">您的购物车为空,请先逛<a href="#">购物车</a></span>

        </center>

    </body>

</html>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐