angular初始用——简易购物车
<html>
<head>
<meta charset="utf-8">
<script src="js/angular.js"></script>
<script src="js/mult_app.js"></script>
<link rel="stylesheet" href="css/bootstrap.css">
<style>
.nested {
border: 1px solid red;
margin-left: 2em;
padding: 1em;
}
</style>
</head>
<body ng-app="MyApp">
//angularjs版本的多个购物车
<div ng-controller="MyCar">
<ul ng-repeat="item in carList">
<li>名字{{item.name}} 数量 <span ng-click="minus(item.index)">-</span> {{item.num}} <span ng-click="plus(item.index)">+</span> 价格{{item.price}}
<span ng-click="remove(item.index)">删除</span>
</li>
</ul>
总价 {{totalPrice}}
</div>
</body>
</html>
var app = angular.module("MyApp", []);
var carList = [{
name: "牛奶",
price: 20,
num: 1
},{
name: "鮮花",
price: 5,
num: 1
},{
name: "水果",
price: 10,
num: 1
},{
name: "鸡蛋",
price: 2,
num: 1
}];
function wrapData(data){
for(var i =0; i< data.length; i++) {
data[i].index = i;
data[i].initPrice = data[i].price;
}
}
function store(namespace, data) {
if(arguments.length > 1) {
localStorage.setItem(namespace, JSON.stringify(data));
}else {
var obj = localStorage.getItem(namespace);
return (obj && JSON.parse(obj)) || null
}
}
function getTotalPrice(data){
var totalPrice = 0;
for(var i =0; i< data.length; i++) {
totalPrice+= data[i].num * data[i].initPrice
}
return totalPrice;
}
wrapData(carList);
app.controller("MyCar", function($scope) {
//模块作用域
$scope.carList = store('mycar') || carList;
$scope.totalPrice = getTotalPrice(carList);
$scope.$watch("carList", function(newvalue, oldvalue){
$scope.totalPrice = getTotalPrice($scope.carList);
store('mycar', $scope.carList);
}, true);
$scope.remove = function(index){
$scope.carList.splice(index, 1);
}
$scope.plus = function(index){
$scope.carList[index].num ++;
$scope.carList[index].price += $scope.carList[index].initPrice;
}
$scope.minus = function(index){
$scope.carList[index].num --;
$scope.carList[index].price -= $scope.carList[index].initPrice;
}
});
app.controller("AnotherCtrl", function($scope) {
$scope.firstUser = 'Peter';
});
angular初始用——简易购物车的更多相关文章
- Session机制二(简易购物车案例)
一:案例一(简易购物车) 1.目录结构 2.step1.jsp <%@ page language="java" contentType="text/html; c ...
- javaweb练手项目jsp+servlet简易购物车系统
简易购物车项目 这是一个用intellij IDEA做的简易的javaweb项目,开发环境使用的jdk1.8和tomcat8以及mysql数据库. 1.项目开发准备: 创建github仓库 项目框架搭 ...
- angular做的简单购物车
虽然本人也是刚刚才开始学习angular.js,并不是非常会,但是这并不能阻止我对angular的喜爱.因为它太省代码了,比如说一个比较简单的购物车,就是只有商品名称,单价,数量,小计,总计和删除功能 ...
- IONIC之简易购物车
HTML <div ng-app="app"> <div class="l-header"> <div class="l ...
- Java servlet 实现的简易购物车
首页 2.购买页 3.购物车页 1. 首页代码 发送一个post请求 <!DOCTYPE html><html lang="en"><head> ...
- [ Python -1 ] 简易购物车程序
练习: 1. 要求用户输入总资产,例如:2000 2. 显示商品列表,让用户根据序号选择商品,加入购物车 3. 购买,如果商品总额大于总资产,提示账户余额不足,否则,购买成功. goods = [{' ...
- ~~小练习:python的简易购物车~~
进击のpython 1,用户先给自己的账户充钱:比如先充3000元. 2,有如下的一个格式: goods = [{"name": "电脑", "pri ...
- HttpSession之简易购物车
创建一个简单的购物车模型,由三个 jsp 和两个 Servlet 组成: step1.jsp <%@ page language="java" contentType=&qu ...
- Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车
让我们来实现一个简单的 “电商购物车” 需求来了解一下如何使用 Newbe.Claptrap 进行开发. 业务需求 实现一个简单的 “电商购物车” 需求,这里实现几个简单的业务: 获取当前购物车中的商 ...
随机推荐
- UESTC 1272 Final Pan's prime numbers(乱搞)
题目链接 Description Final Pan likes prime numbers very much. One day, he want to find the super prime n ...
- 一步一步学EF系列3【升级篇 实体与数据库的映射】
之前的三张为基础篇,如果不考虑架构问题,做一般的小程序,以足够用了.基本的增删改查也都有了.但是作为学习显然是不够的.通过之前三章的学习,有没有发现这样写有什么问题,有没有觉得繁琐的?可能有人会说,之 ...
- 核心梳理——消息处理的骨架流程——ESFramework 4.0 进阶(02)
在ESFramework 4.0 概述一文中,我们提到ESFramework.dll作为通信框架的核心,定义了消息处理的骨架流程,本文我们来详细剖析这个流程以及该骨架中所涉及的各个组件.ESFrame ...
- 关于NLog的target和Layout
这个没啥好说的,都是用别人的东西,看文档就行了,写的很详细. https://github.com/NLog/NLog/wiki/Configuration-file https://github.c ...
- 经典dp 最长公共子序列
首先,说明一下子序列的定义…… 一个序列A={a1,a2,a3,...,an},从中删除任意若干项,剩余的序列叫A的一个子序列. 很明显(并不明显……),子序列……并不需要元素是连续的……(一开始的时 ...
- Linode开通新加坡机房:vps速度快,价格不变!
vps服务商linode终于开通了新加坡机房中心,这是linode全球第7个机房,满足日益增长的东南亚市场需求.印度.中国.澳大利亚及周边国家都有很好的用户体验. linode新加坡机房采用思科Cis ...
- 灰色关联度Matlab代码
load x.txt %把原始数据存放在纯文本文件x.txt中,其中把数据的"替换替换成. for i=1:40x(i,:)=x(i,:)/x(i,1); %标准化数据end data=x; ...
- Neutron 不健全的HA ROUTER
首先介绍下HA,所谓的HA就是高可用性,但HA有双主.主备两种工作模式,其中主备模式又包含抢占与 非抢占两种方式,而Neutron Router采用的无疑是HA中最简单的工作方式非抢占主备模式. HA ...
- 3g 上网卡使用
控制面板\网络和 Internet\网络连接每个USB孔都会分配网路名 --cisco vpn 连接问题解决 启动(以管理员身份运行) sc stop SharedAccess ---完美解决win7 ...
- python&MongoDB
1 #!/usr/bin/python 2 #-*- coding:utf-8 3 import pymongo 4 connection=pymongo.MongoClient() 5 tdb=co ...