AngularJS实现 购物车

<!DOCTYPE html>
<html>
	<head>
		<meta charset = "utf-8">
		<script type="text/javascript" src = "lib/angular.js"></script>
		<style type="text/css">
		   .item{
		   	 	height: 200px;
		   	 	width:100px;
		   	 	margin:5px;
		   	 	border:1px solid #ccc;
		   	 	float:left;
		   }
		</style>
	</head>
	<body ng-app = "mapp" ng-controller = "mctrl">
		<div class = "list">
			<div class = "item" ng-repeat = "item in items">
				<p class = "item-name"><span>商品名:</span>{{item.name}}</p>
				<p class = "item-price"><span>价格:</span>{{item.price|currency:"¥"}}</p>
				<input type = "button" ng-click = "buy($index)" value = "购买">
			</div>
		</div>
		<div class = "item-car">
			<p ng-repeat = "item in items">
				<span>{{item.name}}&nbsp&nbsp&nbsp&nbsp<span>
				<span>{{item.price|currency:"单价"}}&nbsp&nbsp&nbsp</span>
				<input type = "button" value = "-" ng-click = "minus($index)"/>
				<input type = "text" ng-model = "varlist.itemNum[$index]">
				<input type = "button" value = "+" ng-click = "add($index)"/>
				<span>单件总价:{{item.price*varlist.itemNum[$index]|currency:"¥"}}</span>
			</p>
			<p>总价:{{varlist.total|number:2}}</p>
		</div>
		<script type="text/javascript">
			var app = angular.module("mapp", []);
			app.controller("mctrl", function($scope) {
				// 数据源
			    $scope.items = [{
			        "name": "王老吉",
			        "price": 4
			    }, {
			        "name": "老干妈",
			        "price": 7.5
			    }, {
			        "name": "臭豆腐",
			        "price": 7.32
			    }, {
			        "name": "饼干",
			        "price": 22
			    }, ];
			    var len = $scope.items.length;
			    var arr = [];
			    // 循环为数组赋值
			    for (var i = 0; i < len; i++) {
			        arr[i] = 0;
			    }
			    // 检测是否变化,为了总价能够改变
			    $scope.$watch("varlist.itemNum", function() {
			        getTotal();
			    }, true);
			    // 定义变量
			    $scope.varlist = {
			        itemNum: arr,
			        total: 0
			    }
			    // 购物的时候操作
			    $scope.buy = function($index) {
			        $scope.varlist.itemNum[$index]++;
			        getTotal();
			    }
			    // -----
			    $scope.minus = function($index) {
			        if ($scope.varlist.itemNum[$index] == 0) {
			            return;
			        } else {
			            $scope.varlist.itemNum[$index]--;
			            getTotal();
			        }
			    }
			    // ++++
			    $scope.add = function($index) {
			        $scope.varlist.itemNum[$index]++;
			        getTotal();
			    }
			    // 计算总价
			    var getTotal = function($index) {
			        $scope.varlist.total = 0;
			        for (var j = 0; j < len; j++) {
			            $scope.varlist.total = $scope.varlist.total + $scope.varlist.itemNum[j] * $scope.items[j].price;
			        }
			        return $scope.varlist.total;
			    }
			});
		</script>
	</body>
</html>

2015-01-19   10:54:27  linJS

  

时间: 2024-10-14 03:01:10

AngularJS实现 购物车的相关文章

angularjs制作购物车功能

尊重劳动成果,转载请注明出处(http://blog.csdn.net/sllailcp/article/details/47833315)... 初学angularJS   闲暇之余做了个小案例. 功能:计算购物车商品的价格,以及删除购物车商品. 以下是完整案例(jQuery和angularjs需要自己引入) <!doctype html> <html ng-app="myApp"> <head> <meta charset="ut

angularJS商品购物车案例

<!DOCTYPE html> <html ng-app="shopping"> <head lang="en"> <meta charset="UTF-8"> <title></title> <link rel="stylesheet" href="bootstrap-3.3.4-dist/css/bootstrap.css"/

AngularJS 学习笔记(四)

用AngularJS实现购物车,具体代码如下: <!DOCTYPE html> <html ng-app="app"> <head>     <meta charset="utf-8">     <link href="http://cdn.bootcss.com/bootstrap/3.3.4/css/bootstrap.min.css" rel="stylesheet"

购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证

原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(3)--Idetity,OWIN前后端验证 chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解. 文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/2015/03/07/angularjs-feat-web-api-

购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session

原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(2)--前端,以及前后端Session chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解. 文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/2015/03/07/angularjs-feat-web-api-en

购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(1)--后端

原文:购物车Demo,前端使用AngularJS,后端使用ASP.NET Web API(1)--后端 chsakell分享了前端使用AngularJS,后端使用ASP.NET Web API的购物车案例,非常精彩,这里这里记录下对此项目的理解. 文章:http://chsakell.com/2015/01/31/angularjs-feat-web-api/http://chsakell.com/2015/03/07/angularjs-feat-web-api-enable-session-

AngularJS 实现简单购物车

使用AngularJS实现一个简单的购物车,主要感受强大的双向绑定和只关注对象不关注界面特性. 先看看界面: 点击+-操作和删除: 这些全部只需要操作数据源就行,不需要关注界面. 实现过程: 一.使用任何语言创建一个服务端: public class ShoppingCar { public string Title { get; set; } public decimal UnitPrice { get; set; } public int Count { get; set; } } publ

angularjs购物车练习

本文是一个简单的购物车练习,功能包括增加.减少某商品的数量,从而影响该商品的购买总价以及所有商品的购买总价:从购物车内移除一项商品:清空购物车. 页面效果如图: 若使用js或jQuery来实现这个页面,会需要绑定很多事件,如减少数量按钮事件,增加数量按钮事件,移除某项商品事件,清空购物车事件,而这些事件之中很多代码很重复,比如计算某项商品的总购买价,计算所有商品的购买总价,不胜其烦,现在有了AngularJS,则简单许多,因为数据模型双向绑定等原因. 上图页面的代码: html [html] v

angularJs 使用中遇到的问题小结【二:购物车引起的问题思考】

问题描述 :购物车引起的问题思考 业务逻辑是这样的:我商品加入购物车后,——>点击购物车图标——>进入订单列表(这里的数据只有首次会加载服务器数据,后面就不会执行控制器的方法了,这里的跳转没有放到同一个controller中),请教怎么解决比较好! 尝试用data-ng-init="load()"这个放在订单界面也没有效果[为了便于理解:大家可以理解成在淘宝购物 然后选好后商品后加入你的购物车 这个时候你点击购物车图标进入你的订单列表. 你的订单列表的数据就是你刚刚选的商品