Angularjs 制作购物车功能实例代码
更新时间:2016年09月14日 09:31:47 作者:love深蓝
这篇文章主要介绍了Angularjs 制作购物车功能实例代码的相关资料,并附示例代码,需要的朋友可以参考下
初学angularJS 闲暇之余做了个小案例。
功能:计算购物车商品的价格,以及删除购物车商品。
以下是完整案例(jQuery和angularjs需要自己引入)
<!doctype html> <html ng-app="myApp"> <head> <meta charset="utf-8"> <title>无标题文档</title> <style> .cursors{cursor:pointer} </style> <script src="js/jquery-1.11.1.js"></script> <script src="js/angular.min.js"></script> <script> var A=angular.module('myApp',[]); //购物车 加 A.directive('myAdds',function(){ return { link:function(scope, element, attr){ element.click(function(){ var This=this angular.forEach(scope.dataList,function(data,index,array){ if(attr.items==data.items){ data.num=parseInt(data.num)+1; scope.allPrices(); scope.$apply() //刷新视图 } }); }); } } }) //购物车 减 A.directive('myMinus',function(){ return { link:function(scope, element, attr){ element.click(function(){ var This=this angular.forEach(scope.dataList,function(data,index,array){ if(attr.items==data.items){ if(data.num<=1){ if(confirm('是否删除该产品')){ data.num=0; $(This).siblings('input').val(0); scope.allPrices(); scope.$apply(); //delete array[index]; scope.dataList.splice(index,1) $(This).parents('tr').remove(); } }else{ data.num=parseInt(data.num)-1; }; scope.allPrices(); scope.$apply(); } }); }); } } }) //全选,全不选 A.directive('allOrcan',function(){ return function(scope, element, attr){ element.click(function(){ var isCheck=$(this).find('input').prop('checked'); if(isCheck){ $('input[type=checkbox]').prop('checked',true); }else{ $('input[type=checkbox]').not($('input[type=checkbox]').eq(0)).prop('checked',false); } angular.forEach(scope.dataList,function(data,index,array){ data.Bol=isCheck; }) scope.allPrices(); scope.$apply(); }) } }) //单选 A.directive('oneCheck',function(){ return function(scope, element, attr){ element.click(function(){ var This=this angular.forEach(scope.dataList,function(data,index,array){ if(attr.items==data.items){ var isCheck=$(This).prop('checked'); data.Bol=isCheck; scope.allPrices(); scope.$apply(); } }) }); } }) A.controller('myAngular',['$scope','$filter',function($scope,$filter){ $scope.dataList=[//初始化购物车的数据 {Bol:'false',name:'洗衣机',num:'1',items:'0',oneprice:'900',price:''}, {Bol:'false',name:'热水器',num:'1',items:'1',oneprice:'110',price:''}, {Bol:'false',name:'空调',num:'1',items:'2',oneprice:'116',price:''}, {Bol:'false',name:'冰箱',num:'1',items:'3',oneprice:'2087',price:''}, {Bol:'false',name:'电磁炉',num:'1',items:'4',oneprice:'135',price:''}, {Bol:'false',name:'被子',num:'1',items:'5',oneprice:'50',price:''}, {Bol:'false',name:'本子',num:'1',items:'6',oneprice:'2',price:''}, {Bol:'false',name:'笔',num:'1',items:'7',oneprice:'115',price:''}, {Bol:'false',name:'杯子',num:'1',items:'8',oneprice:'12',price:''}, {Bol:'false',name:'书',num:'1',items:'9',oneprice:'5',price:''}, {Bol:'false',name:'零食',num:'1',items:'10',oneprice:'13',price:''} ]; //总价格的计算 $scope.allPrices=function(){ $scope.allprice=0; angular.forEach($scope.dataList,function(data,index,array){ data.price=data.num*data.oneprice; if(data.Bol==true){ $scope.allprice+=parseInt(data.price); } }) return $scope.allprice; }; //按单价排序 $scope.CartSort=function(arg){ angular.forEach($scope.dataList,function(data,index,array){ arguments.callee['CartSort('+arg+')']=!arguments.callee['CartSort('+arg+')'] $scope.dataList=$filter('orderBy')($scope.dataList,arg,arguments.callee['CartSort('+arg+')']) }) } }]) </script> </head> <body ng-controller="myAngular"> <table border="1"> <tr> <td><label all-orcan><input type="checkbox">全选/取消全选 </label></td> <td>名称</td> <td>数量</td> <td ng-click='CartSort("oneprice")'>单价</td> <td>价格</td> </tr> <tr ng-repeat="data in dataList"> <td><input type="checkbox" one-check items={{data.items}}></td> <td ng-cloak>{{data.name}}</td> <td><input type="text" ng-cloak ng-model="data.num" items="{{data.items}}" style="width:50px;text-align:center;"> <button my-adds items="{{data.items}}" ng-class="{cursors:true}" >+</button> <button my-minus items="{{data.items}}" ng-class="{cursors:true}" >-</button> </td> <td ng-cloak>{{data.oneprice}}</td> <td ng-cloak>{{data.price}}</td> </tr> </table> <div>总价格:{{allPrices()}}</div> </body> </html> <!--<script>alert(0)</script>-->
效果如图所示:
尊重劳动成果,转载请注明出处(http://blog.csdn.net/sllailcp/article/details/47833315)...
相关文章
使用Angular CDK实现一个Service弹出Toast组件功能
本文主要写用cdk实现一个简单的Toast组件,使用的是cdk中的overlay模块,需要手动安装环境,具体安装方法及相关实现代码跟随小编一起看看吧2021-07-07详解angularjs结合pagination插件实现分页功能
本篇文章主要介绍了详解angularjs结合pagination插件实现分页功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下。2017-02-02AngularJS 将再发布一个重要版本 然后进入长期支持阶段
目前团队正在开发 AngularJS 1.7.0,而 1.7 的开发周期将一直持续到 2018 年 6 月 30 日2018-01-01AngularJs1.x自定义指令独立作用域的函数传入参数方法
今天小编就为大家分享一篇AngularJs1.x自定义指令独立作用域的函数传入参数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-10-10Angularjs 根据一个select的值去设置另一个select的值方法
今天小编就为大家分享一篇Angularjs 根据一个select的值去设置另一个select的值方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-08-08Angular.js与node.js项目里用cookie校验账户登录详解
这篇文章主要介绍了Angular.js与node.js项目里用cookie校验账户登录的相关资料,文中介绍的非常详细,需要的朋友可以参考借鉴,下面来一起看看吧。2017-02-02
最新评论