angularjs实现简单的购物车功能


Posted in Javascript onSeptember 21, 2017

本文实例为大家分享了angularjs实现购物车功能的具体代码,供大家参考,具体内容如下

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Title</title>
  <style>
    *{
      margin: 0;
      padding: 0;
      margin-left: 10px;
    }
    li{
      list-style: none;
    }
    .add,.reduce{
      display: inline-block;
      width: 20px;
      height: 20px;
      border: 1px solid #000;
      text-align: center;
    }
    .line{
      border-bottom: 1px solid #000;
    }
  </style>
  <script src="angular-1.5.5/angular.min.js"></script>
  <script>
    var myapp=angular.module("myapp",[]);
    myapp.controller("myCtrl",function($scope){
      $scope.cart=[
        {
          "shopName":"趣艺工坊",
          "checked":false,
          "goods":[
            {
              "goodsName":"纯手工制作木质时钟精致家具装饰摆件",
              "pic":"images/cart_01.jpg",
              "price":150.00,
              "number":1,
              "checked":false
            },
            {
              "goodsName":"木质蓝牙音箱包邮实木家具装饰摆件",
              "pic":"images/cart_02.jpg",
              "price":119.00,
              "number":2,
              "checked":true
            },
            {
              "goodsName":"装饰木雕,独特趣味设计家具装饰摆件",
              "pic":"images/cart_03.jpg",
              "price":120.00,
              "number":0,
              "checked":false
            }
          ]
        },
        {
          "shopName":"邻街纸艺",
          "checked":false,
          "goods":[
            {
              "goodsName":"纯手工制作木质时钟精致家具装饰摆件",
              "pic":"images/cart_04.jpg",
              "price":89.00,
              "number":2,
              "checked":true
            },
            {
              "goodsName":"木质蓝牙音箱包邮实木家具装饰摆件",
              "pic":"images/cart_05.jpg",
              "price":189.00,
              "number":1,
              "checked":false
            }
          ]
        },
        {
          "shopName":"纸来我往",
          "checked":true,
          "goods":[
            {
              "goodsName":"纯手工制作木质时钟精致家具装饰摆件",
              "pic":"images/cart_06.jpg",
              "price":289.00,
              "number":3,
              "checked":true
            }
          ]
        }

      ];
      //点击加减按钮,数量加减;点击删除按钮,删除商品
      $scope.reduce=function(goods){
        goods.number--;
        if (goods.number<=0) goods.number=0;
        $scope.totalMoney();
      };
      $scope.add=function(kind){
        kind.number++;
        $scope.totalMoney();
      };
      $scope.delete=function(item,index){
        item.goods.splice(index,1)
      };
      /*总金额计算*/
      $scope.totalMoney=function(){
        var total=0;
        for(var i=0;i<$scope.cart.length;i++){
          for(var j=0;j<$scope.cart[i].goods.length;j++){
            if($scope.cart[i].goods[j].checked){
              total+=$scope.cart[i].goods[j].price*$scope.cart[i].goods[j].number;
            }
          }
        }
        return total;
      };
      /*商铺选择*/
      $scope.shopChecked=function(item){
        if(item.checked==true){
          for(var i=0;i<item.goods.length;i++){
            item.goods[i].checked=true
          }
        }else {
          for(var i=0;i<item.goods.length;i++){
            item.goods[i].checked=false;
          }
        }
      };
      /*全部选择*/
      $scope.allChecked=function(){
        if($scope.allCheck){
          for(var i=0;i<$scope.cart.length;i++){
            $scope.cart[i].checked=true;
            for(var j=0;j<$scope.cart[i].goods.length;j++){
              $scope.cart[i].goods[j].checked=true;
            }
          }
        }else {
          for(var i=0;i<$scope.cart.length;i++){
            $scope.cart[i].checked=false;
            for(var j=0;j<$scope.cart[i].goods.length;j++){
              $scope.cart[i].goods[j].checked=false;
            }
          }
        }
      };
    })
  </script>
</head>
<body ng-app="myapp" ng-controller="myCtrl">
<div><input type="checkbox" ng-model="allCheck" ng-click="allChecked()">总金额:<span>{{ totalMoney() | currency:"¥"}}</span></div>
<div ng-repeat="item in cart" class="line">
  <div><input type="checkbox" ng-model="item.checked" ng-click="shopChecked(item)"><span>{{item.shopName}}</span></div>
  <ul>
    <li ng-repeat="kind in item.goods">
      <input type="checkbox" ng-model="kind.checked"><span>{{kind.goodsName}}</span>
      <p>{{kind.price}}</p>
      <p><span class="add" ng-click="add(kind)">+</span>{{kind.number}}<span class="reduce" ng-click="reduce(kind)">-</span></p>
      <p ng-click="delete(item,$index)">删除</p>
    </li>
  </ul>
</div>

</body>
</html>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 对象的定义方法
Jan 10 Javascript
JavaScript 全面解析各种浏览器网页中的JS 执行顺序
Feb 17 Javascript
关于JavaScript中var声明变量作用域的推断
Dec 16 Javascript
利用jQuery异步上传文件的插件用法详解
Jul 19 jQuery
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
Dec 28 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
JavaScript基于数组实现的栈与队列操作示例
Dec 22 Javascript
Angular2使用SVG自定义图表(条形图、折线图)组件示例
May 10 Javascript
Element Collapse 折叠面板的使用方法
Jul 26 Javascript
原生js实现自定义消息提示框
Nov 19 Javascript
vue实现移动端div拖动效果
Mar 03 Vue.js
JS实现前端缓存的方法
Sep 21 #Javascript
JS基于正则表达式实现的密码强度验证功能示例
Sep 21 #Javascript
jQuery实现的简单动态添加、删除表格功能示例
Sep 21 #jQuery
详解react服务端渲染(同构)的方法
Sep 21 #Javascript
详解node单线程实现高并发原理与node异步I/O
Sep 21 #Javascript
删除table表格行的实例讲解
Sep 21 #Javascript
js对象实例详解(JavaScript对象深度剖析,深度理解js对象)
Sep 21 #Javascript
You might like
php cookies中删除的一般赋值方法
2011/05/07 PHP
php实现Linux服务器木马排查及加固功能
2014/12/29 PHP
浅析php如何实现App常用的秒发功能
2016/08/03 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
js 数组克隆方法 小结
2010/03/20 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
jQuery实现仿QQ在线客服效果的滚动层代码
2015/10/15 Javascript
js实现遍历含有input的table实例
2015/12/07 Javascript
JS实现本地存储信息的方法(基于localStorage与userData)
2017/02/18 Javascript
JavaScript如何一次性展示几万条数据
2017/03/30 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
JavaScript页面加载事件实例讲解
2019/09/01 Javascript
分享一款超好用的JavaScript 打包压缩工具
2020/04/26 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
python opencv读mp4视频的实例
2018/12/07 Python
对Python3之进程池与回调函数的实例详解
2019/01/22 Python
Python、 Pycharm、Django安装详细教程(图文)
2019/04/12 Python
Python  Django 母版和继承解析
2019/08/09 Python
pandas的to_datetime时间转换使用及学习心得
2019/08/11 Python
python 公共方法汇总解析
2019/09/16 Python
Python assert关键字原理及实例解析
2019/12/13 Python
python lambda函数及三个常用的高阶函数
2020/02/05 Python
贝玲妃英国官网:Benefit英国
2018/02/03 全球购物
澳大利亚婴儿喂养品牌:Cherub Baby
2018/11/01 全球购物
说出一些常用的类,包,接口
2014/09/22 面试题
畜牧兽医本科生的自我评价
2014/03/03 职场文书
实习推荐信
2014/05/10 职场文书
公司授权委托书格式范文
2014/10/02 职场文书
2014年科技工作总结
2014/11/26 职场文书
2014年银行年终工作总结
2014/12/19 职场文书
干部个人考察材料
2014/12/24 职场文书
新年寄语2016
2015/08/17 职场文书
教您怎么制定西餐厅运营方案 ?
2019/07/05 职场文书
SQL Server查询某个字段在哪些表中存在
2022/03/03 SQL Server
Ubuntu18.04下QT开发Android无法连接设备问题解决实现
2022/06/01 Java/Android