使用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 相关文章推荐
关于Jqzoom的使用心得 jquery放大镜效果插件
Apr 12 Javascript
js window.print实现打印特定控件或内容
Sep 16 Javascript
深入理解Javascript中的循环优化
Nov 09 Javascript
jQuery如何获取同一个类标签的所有值(默认无法获取)
Sep 25 Javascript
node.js中的fs.truncate方法使用说明
Dec 15 Javascript
浅析Angular2子模块以及异步加载
Apr 24 Javascript
Vue手把手教你撸一个 beforeEnter 钩子函数
Apr 24 Javascript
vue 组件使用中的一些细节点
Apr 25 Javascript
基于webpack4搭建的react项目框架的方法
Jun 30 Javascript
JavaScript实现无限级递归树的示例代码
Mar 29 Javascript
layui文件上传控件带更改后数据传值的方法
Sep 23 Javascript
前端JavaScript大管家 package.json
Nov 02 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
印尼林东PWN黄金曼特宁咖啡豆:怎么冲世界上最醇厚的咖啡冲煮教程
2021/03/03 冲泡冲煮
在windows iis5下安装php4.0+mysql之我见
2006/10/09 PHP
PHP文件上传主要代码讲解
2013/09/30 PHP
JavaScript高级程序设计 XML、Ajax 学习笔记
2011/09/10 Javascript
Jquery 的outerHeight方法使用介绍
2013/09/11 Javascript
JavaScript数组深拷贝和浅拷贝的两种方法
2014/04/16 Javascript
js监听鼠标点击和键盘点击事件并自动跳转页面
2014/09/24 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
前端实现文件的断点续传(前端文件提交+后端PHP文件接收)
2016/11/04 Javascript
正则表达式替换html元素属性的方法
2016/11/26 Javascript
浅谈js使用in和hasOwnProperty获取对象属性的区别
2017/04/27 Javascript
JavaScript使用Ajax上传文件的示例代码
2017/08/10 Javascript
基于js粘贴事件paste简单解析以及遇到的坑
2017/09/07 Javascript
Vue实现底部侧边工具栏的实例代码
2018/09/03 Javascript
JQuery实现ajax请求的示例和注意事项
2018/12/10 jQuery
jQuery插件实现非常实用的tab栏切换功能【案例】
2019/02/18 jQuery
js+springMVC 提交数组数据到后台的实例
2019/09/21 Javascript
Vue.js标签页组件使用方法详解
2019/10/19 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
原生JS实现微信通讯录
2020/06/18 Javascript
uniapp电商小程序实现订单30分钟倒计时
2020/11/01 Javascript
Python序列之list和tuple常用方法以及注意事项
2015/01/09 Python
python安装mysql-python简明笔记(ubuntu环境)
2016/06/25 Python
python 数据清洗之数据合并、转换、过滤、排序
2017/02/12 Python
python pandas修改列属性的方法详解
2018/06/09 Python
Django2.1集成xadmin管理后台所遇到的错误集锦(填坑)
2018/12/20 Python
python新式类和经典类的区别实例分析
2020/03/23 Python
Python数据正态性检验实现过程
2020/04/18 Python
CSS 说明横向进度条最后显示文字的实现代码
2020/11/10 HTML / CSS
Otticanet澳大利亚:最顶尖的世界名牌眼镜, 能得到打折季的价格
2018/08/23 全球购物
公安学专业求职信
2014/07/27 职场文书
综治工作汇报材料
2014/10/27 职场文书
python实战之90行代码写个猜数字游戏
2021/04/22 Python
pandas数值排序的实现实例
2021/07/25 Python
SONY AN-LP1 短波有源天线放大器图
2022/04/05 无线电
css中:last-child不生效的解决方法
2022/08/05 HTML / CSS