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试卷自动排版系统
Jul 18 Javascript
关于jquery.validate1.9.0前台验证的使用介绍
Apr 26 Javascript
ajax请求get与post的区别总结
Nov 04 Javascript
js实现checkbox全选、不选与反选的方法
Feb 09 Javascript
javascript从定义到执行 你不知道的那些事
Jan 04 Javascript
AngularJS辅助库browserTrigger用法示例
Nov 03 Javascript
Vue.js实现一个漂亮、灵活、可复用的提示组件示例
Mar 17 Javascript
js中apply和Math.max()函数的问题及区别介绍
Mar 27 Javascript
JavaScript实现的拼图算法分析
Feb 13 Javascript
layui使用表格渲染获取行数据的例子
Sep 13 Javascript
vue实现移动端项目多行文本溢出省略
Jul 29 Javascript
JS前端轻量fabric.js系列之画布初始化
Aug 05 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 地址栏信息的获取代码
2009/01/07 PHP
PHP读取xml方法介绍
2013/01/12 PHP
PHP常用操作类之通信数据封装类的实现
2017/07/16 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
javascript 模式设计之工厂模式详细说明
2010/05/10 Javascript
从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
2011/02/23 Javascript
jquery获取css中的选择器(实例讲解)
2013/12/02 Javascript
JavaScript常用脚本汇总(二)
2015/03/04 Javascript
Javascript进制转换实例分析
2015/05/14 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
ActiveX控件的使用-js实现打印超市小票功能代码详解
2017/11/22 Javascript
vue实现权限控制路由(vue-router 动态添加路由)
2019/11/04 Javascript
Vue仿百度搜索功能
2020/12/28 Vue.js
使用JS实现鼠标放上图片进行放大离开实现缩小功能
2021/01/27 Javascript
[36:52]DOTA2真视界:基辅特锦赛总决赛
2017/05/21 DOTA
python使用PyGame模块播放声音的方法
2015/05/20 Python
Python中的Descriptor描述符学习教程
2016/06/02 Python
Python 闭包的使用方法
2017/09/07 Python
python简单实例训练(21~30)
2017/11/15 Python
Python中常用信号signal类型实例
2018/01/25 Python
python实现京东秒杀功能
2018/07/30 Python
python爬虫获取新浪新闻教学
2018/12/23 Python
pandas数据筛选和csv操作的实现方法
2019/07/02 Python
Pandas DataFrame中的tuple元素遍历的实现
2019/10/23 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Docker如何部署Python项目的实现详解
2020/10/26 Python
电子商务应届生求职信
2013/11/16 职场文书
高二英语教学反思
2014/01/19 职场文书
大学校运会广播稿
2014/02/03 职场文书
信访工作经验交流材料
2014/05/23 职场文书
经济管理自荐书
2014/06/09 职场文书
擅自离岗检讨书
2014/09/12 职场文书
2014年店长工作总结
2014/11/17 职场文书
高三物理教学反思
2016/02/20 职场文书
2019年公司卫生管理制度样本
2019/08/21 职场文书
SpringBoot SpringEL表达式的使用
2021/07/25 Java/Android