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 相关文章推荐
鼠标移动到一张图片时变为另一张图片
Dec 05 Javascript
javascript创建数组之联合数组的使用方法示例
Dec 26 Javascript
jquery操作HTML5 的data-*的用法实例分享
Aug 17 Javascript
js中flexible.js实现淘宝弹性布局方案
Jun 23 Javascript
javascript返回顶部的按钮实现方法
Jan 09 Javascript
jQuery实现的网格线绘制方法
Jun 20 Javascript
AngularJS入门教程之Scope(作用域)
Jul 27 Javascript
AngularJS 中的事件详解
Jul 28 Javascript
微信小程序 弹窗自定义实例代码
Mar 08 Javascript
删除table表格行的实例讲解
Sep 21 Javascript
百度地图去掉marker覆盖物或者去掉maker的label文字方法
Jan 26 Javascript
jQuery实现动态加载(按需加载)javascript文件的方法分析
May 31 jQuery
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中ob_flush函数和flush函数用法分析
2015/03/18 PHP
php对文件夹进行相关操作(遍历、计算大小)
2015/11/04 PHP
跟我一起学写jQuery插件开发方法(附完整实例及下载)
2010/04/01 Javascript
JS去除右边逗号的简单方法
2013/07/03 Javascript
js对table的td进行相同内容合并示例详解
2013/12/27 Javascript
JavaScript实现继承的4种方法总结
2014/10/16 Javascript
JS实现当前页居中分页效果的方法
2015/06/18 Javascript
针对JavaScript中this指向的简单理解
2016/08/26 Javascript
WEB开发之注册页面验证码倒计时代码的实现
2016/12/15 Javascript
js中作用域的实例解析
2017/03/16 Javascript
Angular限制input框输入金额(是小数的话只保留两位小数点)
2017/07/13 Javascript
基于javaScript的this指向总结
2017/07/22 Javascript
Webpack中publicPath路径问题详解
2018/05/03 Javascript
AngularJS 前台分页实现的示例代码
2018/06/07 Javascript
Vue中使用webpack别名的方法实例详解
2018/06/19 Javascript
使用微信小程序开发弹出框应用实例详解
2018/10/18 Javascript
JavaScript使用面向对象实现的拖拽功能详解
2019/06/12 Javascript
javascript sort()对数组中的元素进行排序详解
2019/10/13 Javascript
vue 更改连接后台的api示例
2019/11/11 Javascript
javascript浅层克隆、深度克隆对比及实例解析
2020/02/09 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
html+vue.js 实现漂亮分页功能可兼容IE
2020/11/07 Javascript
使用Node.js和Socket.IO扩展Django的实时处理功能
2015/04/20 Python
Python+Pika+RabbitMQ环境部署及实现工作队列的实例教程
2016/06/29 Python
Python简单遍历字典及删除元素的方法
2016/09/18 Python
详解Python3操作Mongodb简明易懂教程
2017/05/25 Python
Numpy掩码式数组详解
2018/04/17 Python
使用tensorflow实现线性svm
2018/09/07 Python
详解查看Python解释器路径的两种方式
2020/10/15 Python
详解CSS3新增的背景属性
2019/12/25 HTML / CSS
Wiggle新西兰:自行车、跑步、游泳
2020/05/06 全球购物
少先队入队活动方案
2014/02/08 职场文书
《陈毅探母》教学反思
2014/05/01 职场文书
要账委托书范本
2014/09/15 职场文书
趣味运动会通讯稿
2015/07/18 职场文书
GPU服务器的多用户配置方法
2022/07/07 Servers