使用Angular.js实现简单的购物车功能


Posted in Javascript onNovember 21, 2016

先给大家分享实现代码,在代码下面有效果图展示,大家可以两者结合参考下,废话不多说了,具体代码如下所示:

<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script src="http://code.angularjs.org/1.2.5/angular.min.js"></script>
<style type="text/css">
td,th{
width: 150px;
text-align: left;
}
table{
width: 800px;
}
.num{
width: 70px;
text-align: center;
}
tr td:last-child button {
background-color: red;
}
#foot button{
background-color: red;
}
</style>
</head>
<!--ng-bind是从$scope -> view的单向绑定ng-modle是$scope <-> view的双向绑定
{{}} 与 ng-bind 的区别是后者在加载时用户不会看到渲染之前的东西,前者可能会看到,所以首页一般用后者加载数据
-->
<body ng-app="myApp">
<div ng-controller="VC1">
<table border="" cellspacing="" cellpadding="">
<tr><th>产品编号</th><th>产品名称</th><th>购买数量</th><th>产品单价</th><th>产品总价</th><th>操作</th></tr>
<tr ng-repeat="x in Product" >
<td>{{x.id}}</td>
<td>{{x.name}}</td>
<td>
<button ng-click="reduce($index)">-</button>
<input type="text" class="num" ng-model="x.quantity" ng-change="change($index)" />
<button ng-click="add($index)">+</button> </td>
<td >{{x.price}}</td>
<td>{{x.price * x.quantity}}</td>
<td><button ng-click="remove($index)">移除</button></td></tr>
</table>
<div id="foot"><span>总价:</span><span ng-bind="totalQuantity()"></span><span>购买数量</span>
<span >{{numAll()}}</span> <button ng-click="removeAll()">清空购物车</button> </div>
</div>
</body>
<script type="text/javascript">
var app = angular.module("myApp",[]);
app.controller("VC1",function($scope){
$scope.Product = [{
id: 1000,
name: "iPhone8",
quantity: 1,
price: 8888
}, {
id: 1001,
name: "iPhone9",
quantity: 1,
price: 9888
}, {
id: 1002,
name: "iPhone 2s",
quantity: 1,
price: 3888
}, {
id: 1003,
name: "iPhone 7P+",
quantity: 1,
price: 10088
}];
//减少数量
$scope.reduce = function(index){
if( $scope.Product[index].quantity > 1){
$scope.Product[index].quantity--;
}else{
$scope.remove(index);
}
}
//添加数量函数
$scope.add = function(index){
$scope.Product[index].quantity++;
}
//所有商品总价函数
$scope.totalQuantity = function(){
var allprice = 0
for(var i = 0 ; i <$scope.Product.length;i++ ){
allprice += $scope.Product[i].quantity * $scope.Product[i].price;
}
return allprice;
}
//购买总数量函数
$scope.numAll = function(){
var numAlls = 0
for(var i = 0 ; i <$scope.Product.length;i++ ){
numAlls += $scope.Product[i].quantity;
}
return numAlls;
}
//删除当前商品
$scope.remove = function(index){
if(confirm("确定要清空数据吗")){
$scope.Product.splice(index,1)
}
}
//清空购物车
$scope.removeAll = function(){
if(confirm("你确定套清空购物车所有商品吗?")){
$scope.Product = [];
}
}
//解决输入框输入负数时变为1
$scope.change = function(index){
if ( $scope.Product[index].quantity >= 1) {
}else{
$scope.Product[index].quantity = 1;
}
}
$scope.$watch('Product',function(oldvalue,newvalue){
console.log(oldvalue);
console.log(newvalue);
})
})
</script>
</html>

效果图展示如下:

使用Angular.js实现简单的购物车功能

以上所述是小编给大家介绍的使用Angular.js实现简单的购物车功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
5种处理js跨域问题方法汇总
Dec 04 Javascript
javascript模拟map输出与去除重复项的方法
Feb 09 Javascript
全面解析Bootstrap表单使用方法(表单样式)
Nov 24 Javascript
jQuery获取多种input值的简单实现方法
Jun 20 Javascript
jQuery中delegate()方法的用法详解
Oct 13 Javascript
js定时器实例分享
Dec 20 Javascript
基于JavaScript实现验证码功能
Apr 01 Javascript
Vue.js如何实现路由懒加载浅析
Aug 14 Javascript
js调用设备摄像头的方法
Jul 19 Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 Javascript
vue实现一个获取按键展示快捷键效果的Input组件
Jan 13 Vue.js
帮你提高开发效率的JavaScript20个技巧
Jun 18 Javascript
jQuery设置Easyui校验规则(推荐)
Nov 21 #Javascript
JS实现图片上传预览功能
Nov 21 #Javascript
值得分享的JavaScript实现图片轮播组件
Nov 21 #Javascript
使用Ajax生成的Excel文件并下载的实例
Nov 21 #Javascript
javascript入门之数组[新手必看]
Nov 21 #Javascript
jQuery UI插件实现百度提词器效果
Nov 21 #Javascript
javascript中Number的方法小结
Nov 21 #Javascript
You might like
解析coreseek for sphinx的使用
2013/06/21 PHP
php隐藏IP地址后两位显示为星号的方法
2014/11/21 PHP
PHP实现的sqlite数据库连接类
2014/12/12 PHP
PHP登录(ajax提交数据和后台校验)实例分享
2016/12/29 PHP
JavaScript与Div对层定位和移动获得坐标的实现代码
2010/09/08 Javascript
关于JavaScript中name的意义冲突示例介绍
2014/05/29 Javascript
node.js中的require使用详解
2014/12/15 Javascript
js闭包所用的场合以及优缺点分析
2015/06/22 Javascript
常见的javascript跨域通信方法
2015/12/31 Javascript
JavaScript统计字符串中每个字符出现次数完整实例
2016/01/28 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
angular 动态组件类型详解(四种组件类型)
2017/02/22 Javascript
Vue.directive自定义指令的使用详解
2017/03/10 Javascript
nodejs multer实现文件上传与下载
2017/05/10 NodeJs
webpack4 处理CSS的方法示例
2018/09/03 Javascript
浅谈VUE-CLI脚手架热更新太慢的原因和解决方法
2018/09/28 Javascript
jQuery实现的3D版图片轮播示例【滑动轮播】
2019/01/18 jQuery
举例区分Python中的浅复制与深复制
2015/07/02 Python
Python装饰器实现几类验证功能做法实例
2017/05/18 Python
Collatz 序列、逗号代码、字符图网格实例
2017/06/22 Python
python中Switch/Case实现的示例代码
2017/11/09 Python
数据清洗--DataFrame中的空值处理方法
2018/07/03 Python
Python中常用的8种字符串操作方法
2019/05/06 Python
python GUI图形化编程wxpython的使用
2019/07/19 Python
Python使用itchat模块实现简单的微信控制电脑功能示例
2019/08/26 Python
Python环境管理virtualenv&amp;virtualenvwrapper的配置详解
2020/07/01 Python
python利用google翻译方法实例(翻译字幕文件)
2020/09/21 Python
CSS3 渐变(Gradients)之CSS3 线性渐变
2016/07/08 HTML / CSS
详解HTML5 canvas绘图基本使用方法
2018/01/29 HTML / CSS
体育老师的教学自我评价分享
2013/11/19 职场文书
寒假实习自荐信
2014/01/26 职场文书
一位农村小子的自荐信
2014/04/07 职场文书
学习走群众路线心得体会
2014/11/05 职场文书
2014年教学工作总结
2014/11/13 职场文书
JavaScript原始值与包装对象的详细介绍
2021/05/11 Javascript
Python破解极验滑动验证码详细步骤
2021/05/21 Python