使用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里使用Dom操作Xml
Jan 22 Javascript
JavaScript语句可以不以;结尾的烦恼
Mar 08 Javascript
js客户端快捷键管理类的较完整实现和应用
Jun 08 Javascript
window.returnValue使用方法示例介绍
Jul 03 Javascript
js实现索引图片切换效果
Nov 21 Javascript
自动化测试读写64位操作系统的注册表
Aug 15 Javascript
jQuery序列化表单成对象的简单实现
Nov 29 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
Aug 13 Javascript
详解Vue.js使用Swiper.js在iOS
Sep 10 Javascript
新手必须知的Node.js 4个JavaScript基本概念
Sep 16 Javascript
一文了解Vue中的nextTick
May 06 Javascript
js数组相减简单示例【删除a数组所有与b数组相同元素】
Mar 04 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
全国FM电台频率大全 - 26 西藏自治区
2020/03/11 无线电
php 邮件发送问题解决
2014/03/22 PHP
PHP中的Memcache详解
2014/04/05 PHP
PHP图片裁剪函数(保持图像不变形)
2014/05/04 PHP
PHP抓取远程图片(含不带后缀的)教程详解
2016/10/21 PHP
详解php 使用Callable Closure强制指定回调类型
2017/10/26 PHP
iframe 父窗口和子窗口相互的调用方法集锦
2010/12/15 Javascript
Jquery跨域获得Json时invalid label错误的解决办法
2011/01/11 Javascript
非主流的textarea自增长实现js代码
2011/12/20 Javascript
js自动下载文件到本地的实现代码
2013/04/28 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
js+css实现tab菜单切换效果的方法
2015/01/20 Javascript
简单介绍jsonp 使用小结
2016/01/27 Javascript
微信小程序 简单DEMO布局,逻辑,样式的练习
2016/11/30 Javascript
PHP获取当前页面完整URL的方法
2016/12/02 Javascript
vue项目首屏打开速度慢的解决方法
2019/03/31 Javascript
nodejs实现获取本地文件夹下图片信息功能示例
2019/06/22 NodeJs
Vue实现点击导航栏当前标签后变色功能
2020/08/19 Javascript
[02:44]DOTA2英雄基础教程 克林克兹
2014/01/15 DOTA
[40:03]DOTA2上海特级锦标赛主赛事日 - 1 败者组第一轮#1EHOME VS Archon
2016/03/02 DOTA
Python利用pandas计算多个CSV文件数据值的实例
2018/04/19 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
详解Numpy中的数组拼接、合并操作(concatenate, append, stack, hstack, vstack, r_, c_等)
2019/05/27 Python
pyqt5 实现在别的窗口弹出进度条
2019/06/18 Python
python求最大值最小值方法总结
2019/06/25 Python
python os.listdir()乱码解决方案
2021/01/31 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
班级德育工作实施方案
2014/02/21 职场文书
对照检查剖析材料
2014/09/30 职场文书
党员个人查摆剖析材料
2014/10/16 职场文书
2014年社区党建工作汇报材料
2014/11/02 职场文书
python绘制箱型图
2021/04/27 Python
python opencv检测直线 cv2.HoughLinesP的实现
2021/06/18 Python
MySQL的InnoDB存储引擎的数据页结构详解
2022/03/03 MySQL