AngularJS购物车功能增加/删除/价格的计算

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>AngularJS购物车功能增加/删除/价格的计算</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>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值