AngularJs 终极购物车(实例讲解)


Posted in Javascript onNovember 08, 2017

废话不多说,直接上代码:

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>购物车</title>
  <script src="angularjs/angular.js"></script>
  <style>
    .box{
      width: 100%;
      border-bottom: 1px solid silver;
    }
    .box1{
      width: 100%;
      margin-top: 5px;
    }
    .box1 button{
      width: 100px;
      height: 40px;
      background: crimson;
      color: white;
      text-align: center;
      line-height: 40px;
      float: right;
      border: 0;
      border-radius: 13px;
    }
    table{
      width: 100%;
    }
    tr td button{
      background: blue;
      color: white;
      border: 0;
    }

  </style>
  <script>
    var my=angular.module("my",[]);
    my.controller("mys",function ($scope) {
      /*声明数据对象,初始化商品信息,数据自拟且不低于四条*/
$scope.arr=[
        {name:"qq",price:12.9,number:2,state:false},
        {name:"wx",price:23.9,number:1,state:false},
        {name:"aa",price:99.9,number:1,state:false},
        {name:"bb",price:10.9,number:5,state:false}
      ];
      /*删除条目*/
$scope.del=function (index) {
        if(confirm("确定移除此项嘛?")){
          $scope.arr.splice(index,1);
        }
      }
      /*点击”+”按钮输入框中的数量加1,同时可以计算出商品小计,和购物 车总价*/
$scope.jia=function (index) {
        $scope.arr[index].number++;
      }
      /*当点击”-”按钮时输入框中的数量减1,商品小计和总价*/
$scope.jian=function (index) {
        if($scope.arr[index].number>1){
          $scope.arr[index].number--;
        }
        else if($scope.arr[index].number==1){
          if(confirm("用户是否删除该商品")){
            $scope.arr.splice(index,1);
          }
        }
      }
      /*计算总价格*/
$scope.allSum=function () {
        var allPrice=0;
        for(var i=0;i<$scope.arr.length;i++){
          allPrice+=$scope.<span style="color:#660e7a"><strong>arr</strong></span>[<span style="color:#458383">i</span>].<span style="color:#660e7a"><strong>price</strong></span>*$scope.arr[i].number;
        }
        return allPrice;
      };
      /*清空购物车*/
$scope.alldel=function () {
        if($scope.arr.length==0){
          alert("您的购物车已空");
        }else{
          $scope.arr=[];
        }
      }
      /*用户点击第一个checkbox代表全选,全选商品后点击删除选中商品,选中商品被删除,  若购物车商品被全部删除后*/
$scope.allCheck=false;
      $scope.allx= function () {
        for(var i=0;i<$scope.arr.length;i++){
          if($scope.allCheck==true){
            $scope.arr[i].state=true;
          }else {
            $scope.arr[i].state=false;
          }
        }
      };
      /*每个复选框*/
$scope.itemCheck = function () {
        var flag = 0;
        for(var i = 0; i<$scope.arr.length; i++){
          if($scope.arr[i].state == true){
            flag ++;
          }
        }
        if(flag == $scope.arr.length){
          $scope.allCheck = true;
        }else{
          $scope.allCheck = false;
        }
      };
      /*批量删除*/
$scope.pi=function () {
        for(var i=0;i<$scope.arr.length;i++){
          if($scope.arr[i].state==true){
            $scope.arr.splice(i,1);
            i--;
            $scope.allCheck = false;
          }
        }
      }
    });
  </script>
</head>
<body ng-app="my" ng-controller="mys">
  <div class="box">
    <h2>我的购物车</h2>
  </div>
  <div class="box1">
    <button ng-click="alldel()" style="margin-right: 10px">清空购物车</button><button ng-click="pi()" style="margin-left: 5px">批量删除</button>
  </div>
  <div class="box2">
    <table border="1">
      <tr>
        <th><input type="checkbox" ng-model="allCheck" ng-click="allx()"/></th>
        <th>name</th>
        <th>price</th>
        <th>number</th>
        <th>totalPrice</th>
        <th>option</th>
      </tr>
      <!--用ng-repaet指令将对象遍历并渲染到页面中-->
<tr ng-repeat="item in arr">
        <td><input type="checkbox" ng-model="item.state" ng-click="itemCheck()"/></td>
        <td>{{item.name}}</td>
        <td>{{item.price | currency:"¥:"}}</td>
        <td><button ng-click="jian($index)">-</button>
          <input type="text" value="{{item.number}}" style="width: 30px;padding-left: 20px"/>
          <button ng-click="jia($index)">+</button>
        </td>
        <td>{{item.price*item.number | currency:"¥:"}}</td>
        <td><button ng-click="del($index)">删除</button></td>
      </tr>
      <tr>
        <td colspan="6">总金额<span ng-bind="allSum()|currency:'¥:'"></span></td>
      </tr>
    </table>
  </div>
</body>
</html>

以上这篇AngularJs 终极购物车(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js中prototype用法详细介绍
Nov 14 Javascript
用html5 js实现点击一个按钮达到浏览器全屏效果
May 28 Javascript
javascript实现锁定网页、密码解锁效果(类似系统屏幕保护效果)
Aug 15 Javascript
Json实现异步请求提交评论无需跳转其他页面
Oct 11 Javascript
javascript cookie基础应用之记录用户名的方法
Sep 20 Javascript
jQuery实现模拟flash头像裁切上传功能示例
Dec 11 Javascript
jQuery开源组件BootstrapValidator使用详解
Jun 29 jQuery
使用jQuery实现鼠标点击左右按钮滑动切换
Aug 04 jQuery
Angular4实现鼠标悬停3d倾斜效果
Oct 25 Javascript
vue脚手架中配置Sass的方法
Jan 04 Javascript
js实现web调用摄像头 js截取视频画面
Apr 21 Javascript
vue分页插件的使用方法
Dec 25 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 #Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 #Javascript
vue-router路由与页面间导航实例解析
Nov 07 #Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 #Javascript
EasyUI实现下拉框多选功能
Nov 07 #Javascript
ES6中字符串string常用的新增方法小结
Nov 07 #Javascript
ES6中数组array新增方法实例总结
Nov 07 #Javascript
You might like
php数组函数序列之next() - 移动数组内部指针到下一个元素的位置,并返回该元素值
2011/10/31 PHP
php二维数组合并及去重复的方法
2015/03/04 PHP
php文件上传你必须知道的几点
2015/10/20 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
PHP实现负载均衡的加权轮询方法分析
2018/08/22 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
JavaScript学习历程和心得小结
2010/08/16 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
JQuery中的html()、text()、val()区别示例介绍
2014/09/01 Javascript
AngularJS中的缓存使用
2017/01/11 Javascript
Vue cli 引入第三方JS和CSS的常用方法分享
2018/01/20 Javascript
vue2.5.2使用http请求获取静态json数据的实例代码
2018/02/27 Javascript
vue 实现cli3.0中使用proxy进行代理转发
2019/10/30 Javascript
在vue项目中封装echarts的步骤
2020/12/25 Vue.js
Python实现PS图像调整之对比度调整功能示例
2018/01/26 Python
python面向对象实现名片管理系统文件版
2019/04/26 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
2019/10/01 Python
python3实现单目标粒子群算法
2019/11/14 Python
Python 解决火狐浏览器不弹出下载框直接下载的问题
2020/03/09 Python
python 链接sqlserver 写接口实例
2020/03/11 Python
基于python实现对文件进行切分行
2020/04/26 Python
Python调用C/C++的方法解析
2020/08/05 Python
python3:excel操作之读取数据并返回字典 + 写入的案例
2020/09/01 Python
详解pandas中利用DataFrame对象的.loc[]、.iloc[]方法抽取数据
2020/12/13 Python
python 实现百度网盘非会员上传超过500个文件的方法
2021/01/07 Python
台湾生鲜宅配:大口市集
2017/10/14 全球购物
探亲邀请信范文
2014/01/30 职场文书
冬季施工防火方案
2014/05/17 职场文书
公司贷款承诺书
2014/05/30 职场文书
销售提升方案
2014/06/07 职场文书
市场调查策划方案
2014/06/10 职场文书
化学教育专业自荐信
2014/07/04 职场文书
撤诉申请怎么写
2015/05/19 职场文书
煤矿安全生产管理协议书
2016/03/22 职场文书
用Python简陋模拟n阶魔方
2021/04/17 Python
Golang gRPC HTTP协议转换示例
2022/06/16 Golang