批量删除+单个删除+全选反选

本文介绍了一个使用AngularJS实现的基本购物车应用案例。该应用具备添加商品、删除商品及批量删除的功能,并通过ng-model实现了数据双向绑定。同时,文章展示了如何使用ng-repeat指令来遍历商品列表。
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title></title>
        <script src="js/angular.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body ng-app="myApp" ng-controller="myCtrl">
        
        商品名<input type="text" ng-model="gname"/>
        单价<input type="text" ng-model="gprice"/>
        数量<input type="text" ng-model="gnum"/>
        <input type="button" value="添加" ng-click="add()"/>
        <input type="button"  value="批量删除" ng-click="piliang()"/>
        <table border="1px" cellspacing="0px" cellpadding="0px">
            <thead>
                <tr>
                    <td><input type="checkbox" ng-model="selectAll" ng-click="all(selectAll)"/></td>
                    <td>商品名</td>
                    <td>单价</td>
                    <td>数量</td>
                    <td>总额</td>
                    <td>操作</td>
                </tr>
            </thead>
            <tr ng-repeat="g in goods">
                <td><input type="checkbox" ng-click="xuanzhong($index)" ng-model="g.flag"/></td>
                <td>{{g.gname}}</td>
                <td>{{g.gprice}}</td>
                <td>{{g.gnum}}</td>
                <td>{{g.gprice*g.gnum}}</td>
                <td><button ng-click="dle($index)">删除</button></td>
            </tr>
        </table>
        
        <script type="text/javascript">
            var mo = angular.module("myApp",[]);
            mo.controller("myCtrl",function($scope){
                
                //定义数组
                $scope.goods = [{"flag":false,"gname":"足球","gprice":3,"gnum":6},
                                {"flag":false,"gname":"篮球","gprice":8,"gnum":3},
                                {"flag":false,"gname":"棒球","gprice":10,"gnum":4}];
                
                //添加
                $scope.add = function(){
                    
                    //创建对象
                    var good = {"flag":false,"gname":$scope.gname,"gprice":$scope.gprice,"gnum":$scope.gnum};
                    //将对象放入数组
                    $scope.goods.push(good);
//                    $scope.goods.unshift();//向第一个位置添加
                    
                }
                //根据复习框的索引,改变flag值
//                $scope.xuanzhong = function($index){
//                    $scope.goods[$index].flag = !$scope.goods[$index].flag;
//                }
                //批量删除
                $scope.piliang = function(){
                    //反着遍历
                    for(var i = $scope.goods.length-1;i>=0;i--){
                        var g = $scope.goods[i];
                        if(g.flag){
                            $scope.goods.splice(i,1);
                        }
                    }
                }
                //单个删除
                $scope.dle=function($index){
                    $scope.goods.splice($index,1);
                }
                
                //单选全选
                   
                $scope.all= function (m) {  
                    for(var i=0;i<$scope.goods.length;i++){  
                      if(m===true){  
                          $scope.goods[i].flag=true;  
                      }else {  
                          $scope.goods[i].flag=false;  
                      }  
                    }  
                };  
                
            });
        </script>
        
    </body>
</html>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值