使用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 相关文章推荐
javascript中的数字与字符串相加实例分析
Aug 14 Javascript
express的中间件cookieParser详解
Dec 04 Javascript
简单介绍JavaScript中字符串创建的基本方法
Jul 07 Javascript
JS实现自动固定顶部的悬浮菜单栏效果
Sep 16 Javascript
node.js学习之交互式解释器REPL详解
Dec 08 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
Feb 23 Javascript
详解vue.js的devtools安装
May 26 Javascript
vue中的计算属性的使用和vue实例的方法示例
Dec 04 Javascript
微信小程序icon组件使用详解
Jan 31 Javascript
js中innerText/textContent和innerHTML与target和currentTarget的区别
Jan 21 Javascript
JavaScript函数式编程(Functional Programming)高阶函数(Higher order functions)用法分析
May 22 Javascript
详解jQuery的核心函数和事件处理
Feb 18 jQuery
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
浅析PHP页面局部刷新功能的实现小结
2013/06/21 PHP
yii2高级应用之自定义组件实现全局使用图片上传功能的方法
2016/10/08 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
JS 控制CSS样式表
2009/08/20 Javascript
深入了解javascript中的prototype与继承
2013/04/14 Javascript
如何使用Javascript获取距今n天前的日期
2013/07/08 Javascript
JavaScript获取多个数组的交集简单实例
2013/11/11 Javascript
分析了一下JQuery中的extend方法实现原理
2015/02/27 Javascript
javascript去除空格方法小结
2015/05/21 Javascript
javascript定义类和类的实现实例详解
2015/12/01 Javascript
jQuery动画效果实现图片无缝连续滚动
2016/01/12 Javascript
Bootstrap3 多选和单选框(checkbox)
2016/12/29 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue项目中常见问题及解决方案(推荐)
2019/10/21 Javascript
Vuex实现数据增加和删除功能
2019/11/11 Javascript
JS快速实现简单计算器
2020/04/08 Javascript
详解vue3.0 diff算法的使用(超详细)
2020/07/01 Javascript
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
Python创建系统目录的方法
2015/03/11 Python
解决Python网页爬虫之中文乱码问题
2018/05/11 Python
Python学习笔记之迭代器和生成器用法实例详解
2019/08/08 Python
浅谈对pytroch中torch.autograd.backward的思考
2019/12/27 Python
python 一维二维插值实例
2020/04/22 Python
python连接mysql有哪些方法
2020/06/24 Python
西班牙英格列斯百货法国官网:El Corte Inglés法国
2017/07/09 全球购物
泰海淘:泰国king Power王权免税集团旗下跨境海淘综合型电商
2020/07/26 全球购物
EJB实例的生命周期
2016/10/28 面试题
2014年元旦感言
2014/03/06 职场文书
生产文员岗位职责
2014/04/05 职场文书
大学班级学风建设方案
2014/05/01 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
办公室主任个人总结
2015/02/28 职场文书
入党函调证明材料
2015/06/19 职场文书
小学班主任工作经验交流材料
2015/11/02 职场文书
MySQL触发器的使用
2021/05/24 MySQL