AngularJs 终极购物车(实例讲解)


Posted in Javascript onNovember 08, 2017

废话不多说,直接上代码:

<!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.<span style="color:#660e7a"><strong>arr</strong></span>[<span style="color:#458383">i</span>].<span style="color:#660e7a"><strong>price</strong></span>*$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>

以上这篇AngularJs 终极购物车(实例讲解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery中获取iframe的代码
Jan 11 Javascript
javascript淡入淡出效果的实现思路
Mar 31 Javascript
网站内容禁止复制和粘贴、另存为的js代码
Feb 26 Javascript
jQuery+PHP星级评分实现方法
Oct 02 Javascript
JS Array.slice 截取数组的实现方法
Jan 02 Javascript
Bootstrap选项卡与Masonry插件的完美结合
Jul 06 Javascript
jQuery实现的自动加载页面功能示例
Sep 04 Javascript
解决OneThink中无法异步提交kindeditor文本框中修改后的内容方法
May 05 Javascript
详解A标签中href=&quot;&quot;的几种用法
Aug 20 Javascript
微信小程序实现下拉刷新和轮播图效果
Nov 21 Javascript
详解webpack+ES6+Sass搭建多页面应用
Nov 05 Javascript
windows下create-react-app 升级至3.3.1版本踩坑记
Feb 17 Javascript
js实现图片粘贴上传到服务器并展示的实例
Nov 08 #Javascript
vue实现仿淘宝结账页面实例代码
Nov 08 #Javascript
vue-router路由与页面间导航实例解析
Nov 07 #Javascript
Vue组件开发之LeanCloud带图形校验码的短信发送功能
Nov 07 #Javascript
EasyUI实现下拉框多选功能
Nov 07 #Javascript
ES6中字符串string常用的新增方法小结
Nov 07 #Javascript
ES6中数组array新增方法实例总结
Nov 07 #Javascript
You might like
由php if 想到的些问题
2008/03/22 PHP
php中把美国时间转为北京时间的自定义函数分享
2014/07/28 PHP
php将字符串全部转换成大写或者小写的方法
2015/03/17 PHP
php实现只保留mysql中最新1000条记录
2015/06/18 PHP
php使用gzip压缩传输js和css文件的方法
2015/07/29 PHP
php封装的pdo数据库操作工具类与用法示例
2019/05/08 PHP
php常用字符串查找函数strstr()与strpos()实例分析
2019/06/21 PHP
HR vs ForZe BO3 第一场 2.13
2021/03/10 DOTA
JavaScript 对象、函数和继承
2009/07/07 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
深入剖析JavaScript:Object类型
2016/05/10 Javascript
jQuery实现CheckBox全选、全不选功能
2017/01/11 Javascript
js实现仿购物车加减效果
2017/03/01 Javascript
vue2.0之多页面的开发的示例
2018/01/30 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
2019/05/23 Javascript
Node.js 中判断一个文件是否存在
2020/08/24 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
Python工程师面试必备25条知识点
2018/01/17 Python
python3+PyQt5图形项的自定义和交互 python3实现page Designer应用程序
2020/07/20 Python
Python中几种属性访问的区别与用法详解
2018/10/10 Python
Python3以GitHub为例来实现模拟登录和爬取的实例讲解
2020/07/30 Python
Spartoo美国:欧洲排名第一的在线时装零售商
2019/12/12 全球购物
贪睡宠物用品:Snoozer Pet Products
2020/02/04 全球购物
给医务人员表扬信
2014/01/12 职场文书
安全口号大全
2014/06/21 职场文书
人力资源职位说明书
2014/07/29 职场文书
2014四风问题对照检查材料范文
2014/09/15 职场文书
市委常委班子党的群众路线教育实践活动整改措施
2014/10/02 职场文书
社区党的群众路线教育实践活动总结材料
2014/10/31 职场文书
小学少先队活动总结
2015/05/08 职场文书
员工聘用合同范本
2015/09/21 职场文书
2019年共青团工作条例最新版
2019/11/12 职场文书
MyBatis-Plus 批量插入数据的操作方法
2021/09/25 Java/Android
SpringDataJPA实体类关系映射配置方式
2021/12/06 Java/Android
Win11自动黑屏怎么办 Win11自动黑屏设置教程
2022/07/15 数码科技