$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)的更多相关文章

  1. angularJS promise $q

    Promise 一 介绍 1.什么是promise 我们知道JavaScript语言的执行环境是“单线程”,所谓单线程,就是一次只能够执行一个任务,如果有多个任务的话就要排队,前面一个任务完成后才可以 ...

  2. angularJS $http $q $promise

    一天早晨,爹对儿子说:“宝儿,出去看看天气如何!” 每个星期天的早晨,爹都叫小宝拿着超级望远镜去家附近最高的山头上看看天气走势如何,小宝说没问题,我们可以认为小宝在离开家的时候给了他爹一个promis ...

  3. angularjs 缓存 $q

    <!DOCTYPE HTML> <html ng-app="myApp"> <head> <meta http-equiv="C ...

  4. angularJS中的Promise对象($q)的深入理解

    原文链接:a better way to learn AngularJS - promises AngularJS通过内置的$q服务提供Promise编程模式.通过将异步函数注册到promise对象, ...

  5. AngularJS 承诺 Promise

    一.概念解释 全称是未来与承诺,Futures and promises,是一种编程模式,不是AngularJS首创.javascript里有个流行库Q,而AngularJS是$q,其就是从Q引入的: ...

  6. promise理解

    每个操作都返回一样的promise对象,保证链式操作 每个链式都通过then方法 每个操作内部允许犯错,出了错误,统一由catch error处理 操作内部,也可以是一个操作链,通过reject或re ...

  7. Node.js最新技术栈之Promise篇

    前言 大家好,我是桑世龙,github和cnodejs上的i5ting,目前在天津创业,公司目前使用技术主要是nodejs,算所谓的MEAN(mongodb + express + angular + ...

  8. promise、resolve、reject、拦截响应

    Promise是一个接口,它用来处理的对象具有这样的特点:在未来某一时刻(主要是异步调用)会从服务端返回或者被填充属性.其核心是,promise是一个带有then()函数的对象. 使用promise机 ...

  9. IGS_学习笔记03_Integrated SOA Gateway设定配置(案例)

    20150506 Created By BaoXinjian

  10. AngularJS 中的Promise --- $q服务详解

    先说说什么是Promise,什么是$q吧.Promise是一种异步处理模式,有很多的实现方式,比如著名的Kris Kwal's Q还有JQuery的Deffered. 什么是Promise 以前了解过 ...

随机推荐

  1. Win10在右键菜单添加“在此处打开命令窗口”设置项

    Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\shell\OpenCmdHere] @="在此处打开命令 ...

  2. atoi函数的一种实现

    atoi函数的使用实例:[Ubuntu环境] main.c: #include <stdio.h> #include <stdlib.h> extern int factori ...

  3. 使用Compute Engine工具连接Linux VM

    Links: Connecting to Linux Instances 内容: 要连接Linux VM实例,必须要有一个SSH(Secure Shell)秘钥.无论何时连接一个LinuxVM实例(通 ...

  4. PDO:数据访问抽象层

    <?php //PDO:数据访问抽象层 //带有事务功能: //dsn:数据源 $dsn="mysql:host=localhost;dbname=aaas"; //造pdo ...

  5. offsetHeight+scrollHeight+clientHeight

    ch 窗口可见区域高度 :ch = padding + height(height不是所有内容的高度,是样式定义的高度) oh border以内的内容高度: oh = border + padding ...

  6. or and 运算符与 pyhton编码

    运算符 # x or y 如果 x 为真,则值为x,否则为y 1 print(4 or 3) # 4 2 print(2 or 3) # 2 3 print(1 or 3) # 1 4 print(0 ...

  7. Loadrunder之脚本篇——检查点

    VuGen判断脚本是否执行成功是根据服务器返回的状态来确定的,如果服务器返回的是HTTP状态为200 OK,那么VuGen就认为脚本正确地运行了,并且是运行通过的.而大多数系统出错时是不会返回错误页面 ...

  8. canvas 视频音乐播放器

    canvas 视频音乐播放器 var play_nor_img_path = 'images/play_btn_n.png'; //播放按钮 正常时 60x60 px var play_sec_img ...

  9. Kubernetes pod网络解析

    在Kubernetes中,会为每一个pod分配一个IP地址,pod内的所有容器都共享这个pod的network namespace,彼此之间使用localhost通信. 那么pod内所有容器间的网络是 ...

  10. centOS最小化安装后网络连接问题

    编辑配置文件 vi /etc/sysconfig/network-script/ifcfg-eth0   修改此行重启后即可 ONBOOT="yes"           #修改为 ...