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 以前了解过 ...
随机推荐
- F110使用的函数
BAPI_ACC_DOCUMENT_POST BAPI_GL*POST 1.F-59 [没有找到函数]BAPI_ACC_DOCUMENT_POST 必须创建有借贷2 line 的凭证,需求要参考原始的 ...
- python2 和 pyhton3 输入语句写法
Python的输入语句类型 1 python2的输入语句 在python2中有两种常见的输入语句,input()和raw_input(). (1)input()函数 可以接收不同类型的参数,而且返回的 ...
- 2015.7.2 想做T再次失败
2015.7.2教训:不要心存侥幸! 1.昨天收盘急跌,加上看到成交量在增加,负荷庄家行为第五条,一时脑热就去抄了.其实在震荡行情下,第二天肯定有时间点比头一天的收盘价低(Pic1) 2.T+0原则: ...
- 前端基础之JavaScript_(1)_ECMAScript
一.JavaScript概述 JavaScript的历史 992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase. ...
- LeetCode:罗马数字转整数【13】
LeetCode:罗马数字转整数[13] 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 10 ...
- 关于Class.getResourceAsStream
Properties properties = new Properties(); properties.load(new InputStreamReader(CharactorTest.cl ...
- node拦截器设置
node的拦截器主要目的是用户登录的时候为用户存了一个session,用户登录后的其他操作都要经过拦截器,对比session的值,并把session的过期时间延长. 拦截器主要是在路由文件routes ...
- start、run、join
首先得了解什么是主线程,当Java程序启动时,一个线程立刻运行,该线程通常叫做程序的主线程(main thread).主线程的重要性体现在两方面:1. 它是产生其他子线程的线程:2. 通常它必须最后完 ...
- iOS_Quartz 2D绘图
目 录: 一.基础知识掌握 二.Quartz 2D绘图基础:CGContextRef实现简单地绘制图形 三.CGContextRef实现文字.图片.基于路径的图形绘制 四.在内存中绘制位图 五.添加 ...
- 斯坦福机器学习视频笔记 Week6 关于机器学习的建议 Advice for Applying Machine Learning
我们将学习如何系统地提升机器学习算法,告诉你学习算法何时做得不好,并描述如何'调试'你的学习算法和提高其性能的“最佳实践”.要优化机器学习算法,需要先了解可以在哪里做最大的改进. 我们将讨论如何理解具 ...