使用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 相关文章推荐
网页自动跳转代码收集
Sep 27 Javascript
JavaScript关于select的相关操作说明
Jan 13 Javascript
javascript中创建对象的三种常用方法
Dec 30 Javascript
jQuery中prepend()方法用法实例
Dec 25 Javascript
JavaScript简单表格编辑功能实现方法
Apr 16 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
获取JS中网页各种高宽与位置的方法总结
Jul 27 Javascript
js简单实现网页换肤功能
Apr 07 Javascript
vue.js移动端tab组件的封装实践实例
Jun 30 Javascript
解决element ui select下拉框不回显数据问题的解决
Feb 20 Javascript
JS拖动选择table里的单元格完整实例【基于jQuery】
May 28 jQuery
Kettle中使用JavaScrip调用jar包对文件内容进行MD5加密的操作方法
Sep 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
php中如何判断一个网页请求是ajax请求还是普通请求
2013/08/10 PHP
解决在laravel中auth建立时候遇到的问题
2019/10/15 PHP
JavaScript DOM 添加事件
2009/02/14 Javascript
jquery中的mouseleave和mouseout的区别 模仿下拉框效果
2012/02/07 Javascript
地址栏传递中文参数乱码在js里用escape转码
2013/08/28 Javascript
js导出table数据到excel即导出为EXCEL文档的方法
2013/10/10 Javascript
JS循环遍历JSON数据的方法
2014/07/08 Javascript
新手快速学习JavaScript免费教程资源汇总
2015/06/25 Javascript
JS实现响应鼠标点击动画渐变弹出层效果代码
2016/03/25 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
jquery遍历json对象集合详解
2016/05/18 Javascript
react配合antd组件实现的管理系统示例代码
2018/04/24 Javascript
jQuery实现的页面弹幕效果【测试可用】
2018/08/17 jQuery
详解koa2学习中使用 async 、await、promise解决异步的问题
2018/11/13 Javascript
如何优雅地在vue中添加权限控制示例详解
2019/03/07 Javascript
vue-cli3使用 DllPlugin 实现预编译提升构建速度
2019/04/24 Javascript
vue-cli3自动消除console.log()的调试信息方式
2020/10/21 Javascript
[04:09]2018年度DOTA2社区贡献奖-完美盛典
2018/12/16 DOTA
Python使用scrapy采集时伪装成HTTP/1.1的方法
2015/04/08 Python
pyqt5自定义信号实例解析
2018/01/31 Python
python去掉空白行的多种实现代码
2018/03/19 Python
初次部署django+gunicorn+nginx的方法步骤
2019/09/11 Python
Python实现AI自动抠图实例解析
2020/03/05 Python
Python基于jieba, wordcloud库生成中文词云
2020/05/13 Python
PyQt5 QDockWidget控件应用详解
2020/08/12 Python
python 如何把docker-compose.yaml导入到数据库相关条目里
2021/01/15 Python
时尚孕妇装:Ingrid & Isabel
2019/05/08 全球购物
电信专业应届生自荐信
2013/09/28 职场文书
党员培训思想汇报
2014/01/07 职场文书
法制宣传月活动总结
2014/04/29 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
2014年学生会主席工作总结
2014/11/07 职场文书
前台接待岗位职责
2015/02/03 职场文书
2015少先队大队辅导员工作总结
2015/07/24 职场文书
优秀团员主要事迹材料
2015/11/05 职场文书
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB