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注册/移除事件处理程序(ExtJS应用程序设计实战)
May 07 Javascript
如何用JavaScript定义一个类
Sep 12 Javascript
浅析js中substring和substr的方法
Nov 09 Javascript
解决angular的post请求后SpringMVC后台接收不到参数值问题的方法
Dec 10 Javascript
jquery append与appendTo方法比较
May 24 jQuery
jQuery.Sumoselect插件实现下拉复选框效果
Nov 09 jQuery
Three.js加载外部模型的教程详解
Nov 10 Javascript
微信小程序简单实现form表单获取输入数据功能示例
Nov 30 Javascript
360doc网站不登录就无法复制内容的解决方法
Jan 27 Javascript
Node.js笔记之process模块解读
May 31 Javascript
JS删除数组指定值常用方法详解
Jun 04 Javascript
微信小程序获取当前时间及星期几的实例代码
Sep 20 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计划任务之关闭浏览器后仍然继续执行的函数
2010/07/22 PHP
thinkPHP框架乐观锁和悲观锁实例分析
2019/10/30 PHP
关于IE、Firefox、Opera页面呈现异同 写脚本很痛苦
2009/08/28 Javascript
JavaScript操作XML实例代码(获取新闻标题并分页,并分页)
2010/05/25 Javascript
12种不宜使用的Javascript语法整理
2013/11/04 Javascript
jQuery中height()方法用法实例
2014/12/24 Javascript
js实现全国省份城市级联下拉菜单效果代码
2015/09/07 Javascript
BootStrap扔进Django里的方法详解
2016/05/13 Javascript
实例解析jQuery中proxy()函数的用法
2016/05/24 Javascript
Bootstrap 源代码分析(未完待续)
2016/08/17 Javascript
js两种拼接字符串的简单方法(必看)
2016/09/02 Javascript
vue-router项目实战总结篇
2018/02/11 Javascript
js实现动态改变radio状态的方法
2018/02/28 Javascript
微信小程序使用蓝牙小插件
2019/09/23 Javascript
JS脚本实现定时到网站上签到/签退功能
2020/04/22 Javascript
py2exe 编译ico图标的代码
2013/03/08 Python
在Python的Django框架中显示对象子集的方法
2015/07/21 Python
Python之Scrapy爬虫框架安装及简单使用详解
2017/12/22 Python
python使用生成器实现可迭代对象
2018/03/20 Python
python如何实现内容写在图片上
2018/03/23 Python
Flask框架配置与调试操作示例
2018/07/23 Python
python3实现指定目录下文件sha256及文件大小统计
2019/02/25 Python
PyCharm第一次安装及使用教程
2020/01/08 Python
什么是python的必选参数
2020/06/21 Python
用CSS3的box-reflect设置文字倒影效果的方法讲解
2016/03/07 HTML / CSS
美国知名户外用品畅销中心:Sierra Trading Post
2016/07/19 全球购物
外贸专业求职信
2014/03/09 职场文书
洗手间标语
2014/06/23 职场文书
教育专业毕业生推荐信
2014/07/10 职场文书
校园游戏活动新闻稿
2014/10/15 职场文书
学生旷课检讨书500字
2014/10/28 职场文书
2015年度优秀员工推荐信
2015/03/23 职场文书
家长会后的感想
2015/08/11 职场文书
2016年幼儿园教研活动总结
2016/04/05 职场文书
Python OpenCV 彩色与灰度图像的转换实现
2021/06/05 Python
python双向链表实例详解
2022/05/25 Python