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 相关文章推荐
让IE8支持DOM 2(不用框架!)
Dec 31 Javascript
jQuery中需要注意的细节问题小结
Dec 06 Javascript
iframe调用父页面函数示例详解
Jul 17 Javascript
BootStrap.css 在手机端滑动时右侧出现空白的原因及解决办法
Jun 07 Javascript
异步加载JS、CSS代码(推荐)
Jun 15 Javascript
微信小程序实现表单校验功能
Mar 30 Javascript
Angular.js实现获取验证码倒计时60秒按钮的简单方法
Oct 18 Javascript
Mint UI 基于 Vue.js 移动端组件库
Nov 07 Javascript
Vue三层嵌套路由的示例代码
May 05 Javascript
记一次webpack3升级webpack4的踩坑经历
Jun 12 Javascript
jQuery的Ajax接收java返回数据方法
Aug 11 jQuery
vue-music 使用better-scroll遇到轮播图不能自动轮播问题
Dec 03 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实现的登录,注册及密码修改功能分析
2016/11/25 PHP
php实现有序数组旋转后寻找最小值方法
2018/09/27 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
php获取是星期几的的一些常用姿势
2019/12/15 PHP
纯JavaScript实现的完美渐变弹出层效果代码
2010/04/02 Javascript
自动刷新网页,自动刷新当前页面,JS调用
2013/06/24 Javascript
js 异步操作回调函数如何控制执行顺序
2013/12/24 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
JavaScript修改浏览器tab标题小技巧
2015/01/06 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
JavaScript中Null与Undefined的区别解析
2015/06/30 Javascript
jquery跟随屏幕滚动效果的实现代码
2016/04/13 Javascript
纯js模仿windows系统日历
2017/02/04 Javascript
在JS中如何把毫秒转换成规定的日期时间格式实例
2017/05/11 Javascript
快速将Vue项目升级到webpack3的方法步骤
2017/09/14 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
小程序日历控件使用方法详解
2018/12/29 Javascript
Node.js 获取微信JS-SDK CONFIG的方法示例
2019/05/21 Javascript
vue登录页面cookie的使用及页面跳转代码
2019/07/10 Javascript
python海龟绘图实例教程
2014/07/24 Python
使用python实现生成用户信息
2017/03/20 Python
利用python将图片转换成excel文档格式
2017/12/30 Python
详解tensorflow训练自己的数据集实现CNN图像分类
2018/02/07 Python
Python向MySQL批量插数据的实例讲解
2018/03/31 Python
Python3利用Dlib19.7实现摄像头人脸识别的方法
2018/05/11 Python
Python面向对象总结及类与正则表达式详解
2019/04/18 Python
了解不常见但是实用的Python技巧
2019/05/23 Python
微信公众号token验证失败解决方案
2019/07/22 Python
Python爬虫进阶之爬取某视频并下载的实现
2020/12/08 Python
css3 column实现卡片瀑布流布局的示例代码
2018/06/22 HTML / CSS
中国高端鲜花第一品牌:roseonly(一生只送一人)
2017/02/12 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
英国羊皮鞋类领先品牌:Just Sheepskin
2019/12/12 全球购物
媒矿安全生产承诺书
2014/05/23 职场文书
给校长的一封检讨书
2014/09/20 职场文书
Python中使用Opencv开发停车位计数器功能
2022/04/04 Python