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 相关文章推荐
javascript常用方法、属性集合及NodeList 和 HTMLCollection 的浏览器差异
Dec 25 Javascript
Jquery实现搜索框提示功能示例代码
Aug 13 Javascript
javascript获取鼠标点击元素对象(示例代码)
Dec 20 Javascript
javascript弹出页面回传值的方法
Jan 28 Javascript
JavaScript删除数组元素的方法
Mar 20 Javascript
JavaScript使用concat连接数组的方法
Apr 06 Javascript
HTML5使用DeviceOrientation实现摇一摇功能
Jun 05 Javascript
jQuery EasyUI Dialog拖不下来如何解决
Sep 28 Javascript
jQuery Ajax全解析
Feb 13 Javascript
原生js实现简单的焦点图效果实例
Dec 14 Javascript
vue 中 elment-ui table合并上下两行相同数据单元格
Dec 26 Javascript
如何使用 JavaScript 操作浏览器历史记录 API
Nov 24 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
解析dedecms空间迁移步骤详解
2013/05/15 PHP
学习php设计模式 php实现装饰器模式(decorator)
2015/12/07 PHP
php 一维数组的循环遍历实现代码
2017/04/10 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
javascript控制swfObject应用介绍
2012/11/29 Javascript
JS实现文件动态顺序载入的方法
2015/03/07 Javascript
Javascript实现div的toggle效果实例分析
2015/06/09 Javascript
javascript实现随机生成DIV背景色
2016/06/20 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
使用AngularJS编写多选按钮选中时触发指定方法的指令代码详解
2017/07/24 Javascript
详解Vue-Cli 异步加载数据的一些注意点
2017/08/12 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
VUE-cli3使用 svg-sprite-loader
2018/10/20 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
基于JavaScript获取url参数2种方法
2020/04/17 Javascript
Vue实现穿梭框效果
2020/09/30 Javascript
详细解读Python中的__init__()方法
2015/05/02 Python
Python3连接MySQL(pymysql)模拟转账实现代码
2016/05/24 Python
Python 爬虫多线程详解及实例代码
2016/10/08 Python
python实现图片筛选程序
2018/10/24 Python
Python打包模块wheel的使用方法与将python包发布到PyPI的方法详解
2020/02/12 Python
python——全排列数的生成方式
2020/02/26 Python
HTML5 Canvas 起步(2) - 路径
2009/05/12 HTML / CSS
HTML5移动端开发中的Viewport标签及相关CSS用法解析
2016/04/15 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
自荐书封面下载
2013/11/29 职场文书
工作交流会欢迎词
2014/01/12 职场文书
幼儿教师师德师风演讲稿
2014/08/22 职场文书
乡镇八一建军节活动方案
2014/08/24 职场文书
土木工程毕业答辩开场白
2015/05/29 职场文书
初中家长意见
2015/06/03 职场文书
社会实践单位意见
2015/06/05 职场文书
汤姆叔叔的小屋读书笔记
2015/06/30 职场文书
Python操作CSV格式文件的方法大全
2021/07/15 Python
Win11 BitLocker 驱动器加密
2022/04/19 数码科技