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.goods = [{
"id": 10,
"name": "iPhone",
"price": 5400,
state: false
}, {
"id": 20,
"name": "ipad mini",
"price": 2200,
state: false
}, {
"id": 30,
"name": "ipad air",
"price": 2340,
state: false
}, {
"id": 40,
"name": "ipad",
"price": 1420,
state: false
}, {
"id": 50,
"name": "imac",
"price": 15400,
state: false
}];


//点击列明进行排序
$scope.orderFlag = "";
$scope.orderLine = "id";
$scope.orderProduct = function(line) {
$scope.orderLine = line;
if($scope.orderFlag == "") {
$scope.orderFlag = "-";
} else {
$scope.orderFlag = "";
}
}
//下拉菜单删选商品价格、
$scope.productPrice = "--请选择--";
$scope.ifShow = function(price) {
if($scope.productPrice == "--请选择--") {
return true;
} else {
var arr = $scope.productPrice.split("~");
var priceMin = arr[0];
var priceMax = arr[1];
if(price < priceMin || price > priceMax) {
return false;
} else {
return true;
}
}
}


//点击删除按钮,删除当前商品
$scope.delProduct = function(delName) {
for(index in $scope.goods) {
if(delName == $scope.goods[index].name) {
$scope.goods.splice(index, 1);
} else {
}
}
}
//定义下拉菜单排序规则
$scope.selOrder;
$scope.orderSel = function() {
if($scope.selOrder == "id") {
$scope.orderFlag = "";
$scope.orderLine = "id";
} else if($scope.selOrder == "-id") {
$scope.orderFlag = "-";
$scope.orderLine = "id";
} else if($scope.selOrder == "price") {
$scope.orderFlag = "";
$scope.orderLine = "price";
} else if($scope.selOrder == "-price") {
$scope.orderFlag = "-";
$scope.orderLine = "price";
};
}


$scope.updatePrice = function(price) {
//获得价格
for(index in $scope.goods) {
if(price == $scope.goods[index].price) {
//修改价格
var result = parseInt(window.prompt("清输入要修改的价格", price));
//在这之前对result的结果进行非字符串判断
if(result < 0) {
alert("输入有误,请重新更改");
} else {
if(window.confirm("确定要将" + $scope.goods[index].name + "的价格更改为:" + result + "吗?")) {
$scope.goods[index].price = result;
};
}

}
}


//全选、全不选
$scope.selectAll = false;
$scope.selectAllFun = function() {
if($scope.selectAll) {
for(index in $scope.goods) {
$scope.goods[index].state = true;
}
} else {
for(index in $scope.goods) {
$scope.goods[index].state = false;
}
}
}
//反选
$scope.checkSelecetAll = function() {
var flag = false;
//遍历数组,获得对象的状态
for(index in $scope.goods) {
//如果有一个对象状态是false即未选中状态,就把标志位flag变为true。
if(!$scope.goods[index].state){
flag = true;
}
}
//判断是否没有一个是未选中状态
if(flag){//这是正面至少有一个未选中
$scope.selectAll = false;//全选状态为false
}else{//一定是全部被选中
$scope.selectAll = true;//全选状态为true
}
}

//批量删除
$scope.delSelect = function(){
//自己添加选中状态判断,就是有没有一个都没选中的情况。

//定义一个空数组,盛放状态是选中的对象
var isSelected = [];
//遍历数组,通过数组对象的状态,判断是否删除当前遍历的对象
for(index in $scope.goods) {
//如果遍历的当前对象状态为true,则删除
if($scope.goods[index].state){
//把当前选中的对象,一个个追加到isSelected数组中。
isSelected.push($scope.goods[index]);
//alert(isSelected.length);
}
}

//遍历isSelected数组,因为isSelected数组中存放的是所有选中项的对象。
for(index in isSelected){
var name = isSelected[index].name;
for(index2 in $scope.goods){
if(name == $scope.goods[index2].name){
$scope.goods.splice(index2,1);
}
}
}
}


});
</script>
</head>


<body ng-app="myApp" ng-controller="myCtrl">
<center>
<h2>我的购物车</h2>
<input type="text" placeholder="产品名称" ng-model="search" /> 产品价格
<select ng-model="productPrice">
<option>--请选择--</option>
<option>0~1000</option>
<option>1001~2000</option>
<option>2001~3000</option>
<option>3001~4000</option>
<option>4001~5000</option>
<option>5001~6000</option>
<option>6001~无穷大</option>
</select>
<select ng-model="selOrder" ng-change="orderSel()">
<option value="">排序方式</option>
<option value="id">id正序</option>
<option value="-id">id逆序</option>
<option value="price">价格正序</option>
<option value="-price">价格逆序</option>
</select>
<button ng-click="delSelect()">批量删除</button>
<br /><br />
<table border="1px solid black" cellpadding="20" cellspacing="0">
<tr>
<th><input type="checkbox" ng-model="selectAll" ng-click="selectAllFun()" /> </th>
<th ng-click="orderProduct('id')">产品编号</th>
<th ng-click="orderProduct('name')">产品名称</th>
<th ng-click="orderProduct('price')">产品价格</th>
<th>操作</th>
</tr>
<tr ng-repeat="good in goods | filter:{'name':search} | orderBy:(orderFlag+orderLine)" ng-if="ifShow(good.price)">
<td><input type="checkbox" ng-model="good.state" ng-click="checkSelecetAll()" /> </td>
<td>{{good.id}}</td>
<td>{{good.name}}</td>
<td>{{good.price}}</td>
<td>
<button ng-click="delProduct(good.name)">删除</button>
<button ng-click="updatePrice(good.price)">修改</button>
</td>
</tr>
</table>
</center>
</body>


</html>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 经导师精心指导并认可、获 98 分的毕业设计项目!【项目资源】:微信小程序。【项目说明】:聚焦计算机相关专业毕设及实战操练,可作课程设计与期末大作业,含全部源码,能直用于毕设,经严格调试,运行有保障!【项目服务】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值