angular.js实现购物车功能


Posted in Javascript onOctober 23, 2017

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

<!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.arr[i].price*$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>

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

Javascript 相关文章推荐
js验证输入是否为手机号码或电话号码示例
Dec 30 Javascript
JS鼠标拖拽实例分析
Nov 23 Javascript
两种js监听滚轮事件的实现方法
May 13 Javascript
手把手搭建安装基于windows的Vue.js运行环境
Jun 12 Javascript
基于vue的短信验证码倒计时demo
Sep 13 Javascript
Angularjs cookie 操作实例详解
Sep 27 Javascript
JS扩展String.prototype.format字符串拼接的功能
Mar 09 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
Jan 15 Javascript
three.js利用gpu选取物体并计算交点位置的方法示例
Nov 25 Javascript
uniapp电商小程序实现订单30分钟倒计时
Nov 01 Javascript
小程序自定义弹框效果
Nov 16 Javascript
如何使用gpu.js改善JavaScript的性能
Dec 01 Javascript
使用store来优化React组件的方法
Oct 23 #Javascript
node文件批量重命名的方法示例
Oct 23 #Javascript
详解vue 实例方法和数据
Oct 23 #Javascript
深入浅析javascript继承体系
Oct 23 #Javascript
Vue.js组件通信的几种姿势
Oct 23 #Javascript
Vue2.0+ElementUI实现表格翻页的实例
Oct 23 #Javascript
JavaScript之创意时钟项目(实例讲解)
Oct 23 #Javascript
You might like
php set_include_path函数设置 include_path 配置选项
2016/10/30 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
JS 统计时间
2021/03/09 Javascript
jquery 操作单选框,复选框,下拉列表实现代码
2009/10/27 Javascript
基于json的jquery地区联动效果代码
2011/07/06 Javascript
JavaScript 用cloneNode方法克隆节点的代码
2012/10/15 Javascript
zeroclipboard 单个复制按钮和多个复制按钮的实现方法
2014/06/14 Javascript
jQuery移除tr无效的解决方法(tr是动态添加)
2014/09/22 Javascript
详解JavaScript函数对象
2015/11/15 Javascript
4种JavaScript实现简单tab选项卡切换的方法
2016/01/06 Javascript
JavaScript实现打开链接页面的方式汇总
2016/06/02 Javascript
js html5 css俄罗斯方块游戏再现
2016/10/17 Javascript
js实现手机拍照上传功能
2017/01/17 Javascript
JavaScript制作简易计算器(不用eval)
2017/02/05 Javascript
angularjs实现过滤并替换关键字小功能
2017/09/19 Javascript
mint-ui的search组件在键盘显示搜索按钮的实现方法
2017/10/27 Javascript
AngularJS 表单验证手机号的实例(非必填)
2017/11/12 Javascript
vue使用中的内存泄漏【推荐】
2018/07/10 Javascript
详解如何使用router-link对象方式传递参数?
2019/05/02 Javascript
[00:20]TI9观赛名额抽取Ⅱ
2019/07/24 DOTA
Python 实现购物商城,含有用户入口和商家入口的示例
2017/09/15 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
关于python写入文件自动换行的问题
2018/06/23 Python
python创建n行m列数组示例
2019/12/02 Python
使用Python测试Ping主机IP和某端口是否开放的实例
2019/12/17 Python
python实现梯度下降法
2020/03/24 Python
使用简单的CSS3属性实现炫酷读者墙效果
2014/01/08 HTML / CSS
JAKO-O德国野酷台湾站:德国首屈一指的婴幼童用品品牌
2019/01/14 全球购物
数控专业个人求职信范例
2013/11/29 职场文书
开业典礼主持词
2014/03/21 职场文书
环境整治工作方案
2014/05/18 职场文书
建筑工地标语
2014/06/18 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
公司地址变更通知
2015/04/25 职场文书
素质拓展训练感想
2015/08/07 职场文书
html+css 实现简易导航栏功能
2021/04/07 HTML / CSS