AngularJS-webapp($q)
$q延迟加载:
当一个数据需要请求多次,后面一个数据需要前面请求的数据时,我们就可以通过延迟加载进行数据传递
如下代码:
首先:我们需要得到职位信息:
{
"id": "p3",
"imageUrl": "/image/company-3.png",
"name": "销售",
"companyId": "c3",
"companyName": "千度",
"cityId": "c1",
"cityName": "上海",
"scaleId": "s3",
"scaleName": "500人以上",
"industryId": "i1",
"industryName": "互联网",
"salaryId": "s2",
"salaryName": "3k-5k",
"experience": "1-3年",
"education": "专科",
"benefit": "成长空间大",
"description": "岗位职责:\n1.销售产品;..."
}
其次通过职位信息里面的companyId获得company信息:
{
"id": "c1",
"imageUrl": "/image/company-1.png",
"name": "慕课网",
"industry": "移动互联网",
"state": "A轮",
"people": "50-150人",
"positionClass": [{
"id": "jishu",
"name": "技术",
"positionList": [{
"id": "p1",
"name": "IOS前端工程师",
"createdDate": "2016-04-16 23:30",
"salary": "15k-25k"
}]
}, {
"id": "yunying",
"name": "运营",
"positionList": [{
"id": "y1",
"name": "运营总监",
"createdDate": "2016-04-10 13:30",
"salary": "25k以上"
}]
}]
}
function getPosition() {
var def = $q.defer();
$http.get('data/position.json?id=' + $state.params.id)
.then(function (response) {
$scope.position = response.data;
def.resolve(response.data);
}).catch(function (err) {
def.reject(err);
});
return def.promise;
}
function getCompany(id) {
$http.get('data/company.json?id=' + id).then(function (response) {
$scope.company = response.data;
});
}
getPosition().then(function (response) {
getCompany(response.companyId)
});
AngularJS-webapp($q)的更多相关文章
- angularJS promise $q
Promise 一 介绍 1.什么是promise 我们知道JavaScript语言的执行环境是“单线程”,所谓单线程,就是一次只能够执行一个任务,如果有多个任务的话就要排队,前面一个任务完成后才可以 ...
- angularJS $http $q $promise
一天早晨,爹对儿子说:“宝儿,出去看看天气如何!” 每个星期天的早晨,爹都叫小宝拿着超级望远镜去家附近最高的山头上看看天气走势如何,小宝说没问题,我们可以认为小宝在离开家的时候给了他爹一个promis ...
- angularjs 缓存 $q
<!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...
- angularJS中的Promise对象($q)的深入理解
原文链接:a better way to learn AngularJS - promises AngularJS通过内置的$q服务提供Promise编程模式.通过将异步函数注册到promise对象, ...
- AngularJS 承诺 Promise
一.概念解释 全称是未来与承诺,Futures and promises,是一种编程模式,不是AngularJS首创.javascript里有个流行库Q,而AngularJS是$q,其就是从Q引入的: ...
- promise理解
每个操作都返回一样的promise对象,保证链式操作 每个链式都通过then方法 每个操作内部允许犯错,出了错误,统一由catch error处理 操作内部,也可以是一个操作链,通过reject或re ...
- Node.js最新技术栈之Promise篇
前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...
- promise、resolve、reject、拦截响应
Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性.其核心是,promise是一个带有then()函数的对象. 使用promise机 ...
- IGS_学习笔记03_Integrated SOA Gateway设定配置(案例)
20150506 Created By BaoXinjian
- AngularJS 中的Promise --- $q服务详解
先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...
随机推荐
- highcharts基本介绍
转自:http://www.cnblogs.com/jyh317/p/4189773.html 一.highcharts简介 Highcharts是一款纯javascript编写的图表库,能够很简单便 ...
- linux命令详解之df(6/19)
df命令作用是列出文件系统的整体磁盘空间使用情况.可以用来查看磁盘已被使用多少空间和还剩余多少空间. df命令显示系统中包含每个文件名参数的磁盘使用情况,如果没有文件名参数,则显示所有当前已挂载文件系 ...
- imx6q 添加intel PCIE网卡
TQ_IMX6Q开发板移植rtl8168-PCIE转千兆网卡 一.配置内核选项PCIE总线驱动支持 默认的内核配置可能没有把PCIE的总线驱动编入内核,所以需要确认是否把驱动编译到了内核里面. 配置好 ...
- UVA11297 Census
题目 UVA11297 Census 做法 二维线段树,单点修改,矩阵查询,树套树(\(x,y\)),维护最大值最小值废话 有一点要注意的是:\(x\)树传到\(y\)树里面修改的时候,如果\(x\) ...
- 查看oracle当前连接数和进程数
查询数据库当前进程的连接数: select count(*) from v$process; 查看数据库当前会话的连接数: select count(*) from v$session; 查看数据库的 ...
- 同类型元素,只有一个被选中js
<div class="wrap-box flex_row"> <div class="wrap-block"> <div cla ...
- eclipse 中英文切换
第一种方法: 在Eclipse安装目录下找到它的配置文件"eclipse.ini",用UE或者EditPlus等工具打开该配置文件,截图显示如下: 然后在最后一行添加如下相应命令: ...
- dreamweaver8快捷键
替换Ctrl+H 处理表格 选择表格(光标在表格中) Ctrl+A 移 动到下一单元格Tab 移 动到上一单元格Shift+Tab 插入行(在当前行之前)Ctrl+M 在表格末插入一行 在最后一个单元 ...
- jar 冲突解决方案
val urlOfClass = classOf[Nothing].getClassLoader.getResource("org/slf4j/spi/LocationAwareLogger ...
- HBase学习1(hbase基础)
认识NoSQL NoSQL:泛指非关系数据库(Not only SQL) NoSQL两重要特征:使用硬盘和把随机存储器作为存储载体 NoSQL分类(按照存储格式) 1)键值(Key-Value)存储数 ...