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 JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
javascript自动恢复文本框点击清除后的默认文本
Jan 12 Javascript
微信公众号-获取用户信息(网页授权获取)实现步骤
Oct 21 Javascript
微信小程序(六):列表上拉加载下拉刷新示例
Jan 13 Javascript
Bootstrap实现的标签页内容切换显示效果示例
May 25 Javascript
基于JS对象创建常用方式及原理分析
Jun 28 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
微信小程序发布新版本时自动提示用户更新的方法
Jun 07 Javascript
详解Element-UI中上传的文件前端处理
Aug 07 Javascript
原生js实现碰撞检测
Mar 12 Javascript
VUE页面中通过双击实现复制表格中内容的示例代码
Jun 11 Javascript
手写Vue2.0 数据劫持的示例
Mar 04 Vue.js
使用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
根德YB400的电路分析
2021/03/02 无线电
php mb_substr()函数截取中文字符串应用示例
2014/07/29 PHP
php中的字符编码转换函数用法示例
2014/10/20 PHP
PHP实现的简单三角形、矩形周长面积计算器分享
2014/11/18 PHP
php的ddos攻击解决方法
2015/01/08 PHP
查看图片(前进后退)功能实现js代码
2013/04/24 Javascript
Javascript中的for in循环和hasOwnProperty结合使用
2013/06/05 Javascript
jq实现酷炫的鼠标经过图片翻滚效果
2014/03/12 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
AngularJS基础 ng-focus 指令简单示例
2016/08/01 Javascript
在百度搜索结果中去除掉一些网站的资料(通过js控制不让显示)
2017/05/02 Javascript
JS关于刷新页面的相关总结
2018/05/09 Javascript
100行代码实现一个vue分页组功能
2018/11/06 Javascript
Promise扫盲贴
2019/06/24 Javascript
JS检索下拉列表框中被选项目的索引号(selectedIndex)
2019/12/17 Javascript
vue 封装 Adminlte3组件的实现
2020/03/18 Javascript
python中的对象拷贝示例 python引用传递
2014/01/23 Python
Python标准库之collections包的使用教程
2017/04/27 Python
Python设置在shell脚本中自动补全功能的方法
2018/06/25 Python
Python字符串的修改方法实例
2019/12/19 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
Html5画布_动力节点Java学院整理
2017/07/13 HTML / CSS
Sephora丝芙兰菲律宾官方网站:购买化妆品和护肤品
2017/04/05 全球购物
新加坡网上花店:FlowerAdvisor新加坡
2018/10/05 全球购物
Hunkemöller瑞士网上商店:欧洲最大的内衣品牌之一
2018/12/03 全球购物
质检的岗位职责
2013/11/17 职场文书
八年级音乐教学反思
2014/01/09 职场文书
幼儿园中班区域活动总结
2014/07/09 职场文书
三潭印月的导游词
2015/02/12 职场文书
前台接待岗位职责范本
2015/04/03 职场文书
建筑工地资料员岗位职责
2015/04/13 职场文书
小学班主任工作随笔
2015/08/15 职场文书
五年级数学教学反思
2016/02/16 职场文书
MySQL学习总结-基础架构概述
2021/04/05 MySQL
python 逐步回归算法
2021/04/06 Python