• angularJs 购物车模型


      1 <!DOCTYPE html>
      2 <html>
      3     <head>
      4     <meta charset="utf-8">
      5     <link rel="stylesheet" href="vendor/bootstrap3/css/bootstrap.min.css" />
      6     <script type="text/javascript" src="vendor/angularjs/angular.min .js"></script>
      7     <script type="text/javascript">
      8         var cartController = function($scope){
      9             $scope.cart= [
     10                 {
     11                     id:1000,
     12                     name:"iphone6s",
     13                     quantity:3,
     14                     price:6088
     15                 },
     16                 {
     17                     id:2000,
     18                     name:"iphone5",
     19                     quantity:30,
     20                     price:5088
     21                 },
     22                 {
     23                     id:3000,
     24                     name:"imac",
     25                     quantity:10,
     26                     price:23000
     27                 },
     28                 {
     29                     id:4000,
     30                     name:"ipad",
     31                     quantity:6,
     32                     price:6900
     33                 }
     34             ]
     35             /*计算总价*/
     36             $scope.totalPrice = function(){
     37                 var total = 0;
     38                 angular.forEach($scope.cart,function(item){
     39                     total += item.price*item.quantity;
     40                 })
     41                 return total;
     42             }
     43             /*计算总数量*/
     44             $scope.totalQuantity = function(){
     45                 var total = 0;
     46                 angular.forEach($scope.cart,function(item){
     47                     total += item.quantity;
     48                 })
     49                 return total;
     50             }
     51             $scope.remove = function(id){
     52                 var index = findIndex(id);
     53                 if(index!== -1){
     54                     $scope.cart.splice(index,1);
     55                 }
     56             }
     57             $scope.add = function(id){ 
     58                 var index = findIndex(id);
     59                 if(index !== -1){
     60                     ++$scope.cart[index].quantity;
     61                 }
     62             }
     63             $scope.reduce = function(id){ 
     64                 var index = findIndex(id);
     65                 if(index !== -1){
     66                     var item = $scope.cart[index];
     67                     if(item.quantity>1){
     68                         --item.quantity;
     69                     }else{
     70                         var returnkey = confirm("从购物车中删除该商品吗?");
     71                         if(returnkey){
     72                             $scope.remove(id);
     73                         }
     74                     }
     75                 }
     76             }
     77             /*
     78              *查找元素索引 
     79              */
     80             var findIndex = function(id){
     81                 var index = -1;
     82                 angular.forEach($scope.cart,function(item,key){
     83                     if(item.id === id){
     84                         index = key;
     85                         return;
     86                     }
     87                 })
     88                 return index;
     89             }
     90             /* 监听表单数字大小 小于1  提示是否删除 */
     91             $scope.$watch("cart",function(newValue,oldValue){
     92                 angular.forEach(newValue,function(item,key){
     93                     if(item.quantity<1){
     94                         var returnkey = confirm("从购物车中删除该商品吗?");
     95                         if(returnkey){
     96                             $scope.remove(item.id);
     97                         }else{
     98                             item.quantity=oldValue[key].quantity;
     99                         }
    100                         
    101                     }
    102                 })
    103             },true)
    104         }
    105     </script>
    106     </head>
    107     <body ng-app>
    108         <div class="container" ng-controller="cartController">
    109             <table class="table" ng-show="cart.length">
    110                 <thead>
    111                     <tr>
    112                         <th>产品编号</th>
    113                         <th>产品名字</th>
    114                         <th>购买数量</th>
    115                         <th>产品单价</th>
    116                         <th>产品总价</th>
    117                         <th>操作</th>
    118                     </tr>
    119                 </thead>
    120                 <tbody>
    121                     <tr ng-repeat="item in cart">
    122                         <td>{{item.id}}</td>
    123                         <td>{{item.name}}</td>
    124                         <td>
    125                             <button type="button" class="btn btn-primary" ng-click="reduce(item.id)">-</button>
    126                             <input type="text" value="{{totalQuantity()}}" ng-model="item.quantity" maxlength="4"/>
    127                             <button type="button" class="btn btn-primary" ng-click="add(item.id)">+</button>
    128                         </td>
    129                         <td>{{item.price}}</td>
    130                         <td>{{item.price * item.quantity}}</td>
    131                         <td>
    132                             <button type="button" ng-click="remove(item.id)" class="btn btn-danger">移除</button>
    133                         </td>
    134                     </tr>
    135                     <tr>
    136                         <td>总购买价</td>
    137                         <td>{{totalPrice()}}</td>
    138                         <td>总购买数量</td>
    139                         <td>
    140                             {{totalQuantity()}}
    141                         </td>
    142                         <td colspan="2">
    143                             <button type="button" class="btn btn-danger" ng-click="cart={}">清空购物车</button>
    144                         </td>
    145                     </tr>
    146                 </tbody>
    147             </table>
    148             <p ng-show="!cart.length"> 您的购物车为空!</p>
    149         </div>
    150         
    151     </body>
    152 </html>

    页面展示效果:

    -------------the end---------

  • 相关阅读:
    JQUERY 滚动 scroll事件老忘记 标记下
    js获取iframe里的body内容
    win8.1企业版 IIS8.5 安装php5.5.18详细图文
    JS 根据特定URL获取ID数组
    wampserver 2.5安装pear win8.1
    webstorm 文件历史找回~ 恢复正确状态~
    深入浅出数据库索引原理(转)
    Winform自定义表单(转)
    用 ASP.NET MVC 实现基于 XMLHttpRequest long polling(长轮询) 的 Comet(转)
    面对海量请求,缓存设计还应该考虑哪些问题?(转)
  • 原文地址:https://www.cnblogs.com/liuyanan/p/4936222.html
Copyright © 2020-2023  润新知