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 相关文章推荐
jQuery Ajax之load()方法
Oct 12 Javascript
json 入门基础教程 推荐
Oct 31 Javascript
基于JQuery的浮动DIV显示提示信息并自动隐藏
Feb 11 Javascript
JavaScript 验证码的实例代码(附效果图)
Mar 22 Javascript
Google Map V3 绑定气泡窗口(infowindow)Dom事件实现代码
Apr 26 Javascript
js实现单击图片放大图片的方法
Feb 17 Javascript
jQuery实现仿腾讯视频列表分页效果的方法
Aug 07 Javascript
jquery对所有input type=text的控件赋值实现方法
Dec 02 Javascript
AngularJS使用带属性值的ng-app指令实现自定义模块自动加载的方法
Jan 04 Javascript
JavaScript实现弹窗效果代码分析
Mar 09 Javascript
微信小程序websocket实现即时聊天功能
May 21 Javascript
浅谈JS中this在各个场景下的指向
Aug 14 Javascript
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多文件上传功能实现原理及代码
2013/04/18 PHP
php过滤敏感词的示例
2014/03/31 PHP
PHP关于htmlspecialchars、strip_tags、addslashes的解释
2014/07/04 PHP
PHP 二级子目录(后台目录)设置二级域名
2017/03/02 PHP
Ajax中的JSON格式与php传输过程全面解析
2017/11/14 PHP
laravel 实现划分admin和home 模块分组
2019/10/15 PHP
js滚动条多种样式,推荐
2007/02/05 Javascript
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
jQuery 实现侧边浮动导航菜单效果
2014/12/26 Javascript
JavaScript字符串常用类使用方法汇总
2015/04/14 Javascript
NodeJs——入门必看攻略
2016/06/27 NodeJs
js仿搜狐视频记录片列表展示效果
2020/05/30 Javascript
JS获取指定月份的天数两种实现方法
2018/06/22 Javascript
nuxt.js 缓存实践
2018/06/25 Javascript
老生常谈JavaScript获取CSS样式的方法(兼容各浏览器)
2018/09/19 Javascript
浅谈Python类的__getitem__和__setitem__特殊方法
2016/12/25 Python
Django项目中model的数据处理以及页面交互方法
2018/05/30 Python
基于python指定包的安装路径方法
2018/10/27 Python
python write无法写入文件的解决方法
2019/01/23 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
2019/03/14 Python
Python3.5装饰器原理及应用实例详解
2019/04/30 Python
python获取指定日期范围内的每一天,每个月,每季度的方法
2019/08/08 Python
python实现删除列表中某个元素的3种方法
2020/01/15 Python
Pandas —— resample()重采样和asfreq()频度转换方式
2020/02/26 Python
Python基于pandas爬取网页表格数据
2020/05/11 Python
python如何绘制疫情图
2020/09/16 Python
澳大利亚珠宝商:Shiels
2019/10/06 全球购物
年终自我鉴定
2013/10/09 职场文书
行政专员工作职责
2013/12/22 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
重阳节登山活动方案
2014/02/03 职场文书
护理不良事件检讨书
2014/02/06 职场文书
小区的门卫岗位职责
2014/10/01 职场文书
2015年大学生入党自荐书
2015/03/24 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
CSS实现章节添加自增序号的方法
2021/06/23 HTML / CSS