angularjs购物车全选反选

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
		<script type="text/javascript" src="js/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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值