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 相关文章推荐
lib.utf.js
Aug 21 Javascript
jquery实现在页面加载完毕后获取图片高度或宽度
Jun 16 Javascript
js中函数声明与函数表达式
Jun 03 Javascript
JavaScript的MVVM库Vue.js入门学习笔记
May 03 Javascript
jQuery实现别踩白块儿网页版小游戏
Jan 18 Javascript
Angular2使用Augury来调试Angular2程序
May 21 Javascript
js获取地址栏参数的两种方法
Jun 27 Javascript
浅谈angularJS的$watch失效问题的解决方案
Aug 11 Javascript
js中this对象用法分析
Jan 05 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
Apr 08 Javascript
Promise扫盲贴
Jun 24 Javascript
解决vue prop传值default属性如何使用,为何不生效的问题
Sep 21 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
让你的网站首页自动选择语言转跳
2006/12/06 PHP
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
jquery批量控制form禁用的代码
2013/08/06 Javascript
js单例模式详解实例
2013/11/21 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
js实现人才网站职位选择功能的方法
2015/08/14 Javascript
jQuery mobile转换url地址及获取url中目录部分的方法
2015/12/04 Javascript
js动态获取子复选项并设计全选及提交的实现方法
2016/06/24 Javascript
全面了解函数声明与函数表达式、变量提升
2016/08/09 Javascript
jQuery Easyui使用(二)之可折叠面板动态加载无效果的解决方法
2016/08/17 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
VUE实现表单元素双向绑定(总结)
2017/08/08 Javascript
webpack项目轻松混用css module的方法
2018/06/12 Javascript
微信小程序云开发 搭建一个管理小程序
2019/05/17 Javascript
详解node和ES6的模块导出与导入
2020/02/19 Javascript
[39:52]2018DOTA2亚洲邀请赛 4.3 突围赛 EG vs Newbee 第一场
2018/04/04 DOTA
python爬虫爬取快手视频多线程下载功能
2018/02/28 Python
Python实现多级目录压缩与解压文件的方法
2018/09/01 Python
python处理excel绘制雷达图
2019/10/18 Python
python实现吃苹果小游戏
2020/03/21 Python
Java如何支持I18N?
2016/10/31 面试题
《草虫的村落》教学反思
2014/02/16 职场文书
外语专业毕业生自荐信
2014/04/14 职场文书
2014年教师党员公开承诺书
2014/05/28 职场文书
"9.18"国耻日演讲稿范文
2014/09/14 职场文书
职工年度考核评语
2014/12/31 职场文书
研究生毕业论文导师评语
2014/12/31 职场文书
投标承诺函范文
2015/01/21 职场文书
初中信息技术教学计划
2015/01/22 职场文书
辞职信如何写
2015/02/27 职场文书
python获取对象信息的实例详解
2021/07/07 Python
webpack的移动端适配方案小结
2021/07/25 Javascript
Python音乐爬虫完美绕过反爬
2021/08/30 Python
小程序实现悬浮按钮的全过程记录
2021/10/16 HTML / CSS
B站评分公认最好看的动漫,你的名字评分9.9,第六备受喜欢
2022/03/18 日漫