$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. 024-Spring Boot 应用的打包和部署

    一.概述 二.手工打包[不推荐] 打包命令:maven clean package 打包并导出依赖:maven clean package dependency:copy-dependencies 1 ...

  2. 000-mysql小技巧

    1.使用Navicat 链接5.7版本出现 mysql 5.7.9 [Err] 1055报错解决,[Err] 1055 – Expression #1 of ORDER BY clause is no ...

  3. 虚拟化qemu-img的简单用法。

    qemu-img 命​令​行​工​具​是​ Xen 和​ KVM 用​来​格​式​化​各​种​文​件​系​统​的​,可​使​用​ qemu-img 格​式​化​虚​拟​客​户​端​映​像​.​附​加​ ...

  4. 1.1 使用电脑测试MC20模块的基础使用和测试

    需要准备的硬件 MC20开发板 1个 https://item.taobao.com/item.htm?id=562661881042 GSM/GPRS天线 1根 https://item.taoba ...

  5. JavaScript Date to c# Ticks

    var ticks =((yourDateObject.getTime()*10000)+621355968000000000); var minDate = new Date("2013& ...

  6. iOS 4.5.5版本 被拒绝!!!! "App Rejected : non-public APIs"

    今天上午收到邮件说是被拒绝了 原文是 这一版本 我就添加一个购买sku的方法, 并没有添加什么库 ,简简单单的一次升级给我出一私有方法拒绝!!!!! 在xcode8  iOS10 刚出来 ,苹果新规则 ...

  7. 容器排序之sort,stable_sort

    bool isShorter(const string &s1, const string &sz){ return s1.size() < sz.size(); } int m ...

  8. ETL应用:一种处理接口的Pro*C实现方法

    2007年,当时项目所有ETL采用C编写,实现了ETL基本功能.当接口很多时,为保证文件获取效率,做好接口可配置:文件维护中经常会出现接口晚到情况,需要有一种方法能将接口晚到信息写入数据库,便于短信告 ...

  9. Centos系统 上下文切换的检查思路

    1.什么是上下文切换(Context Switch)? 上下文切换,有时也称做进程切换或任务切换,是指CPU从一个进程或线程切换到另一个进程或线程. 操作系统可以同时运行多个进程, 然而一颗CPU同时 ...

  10. PHP类的变量与成员,及其继承、访问与重写要注意的问题

    PHP的类及其实例: <?php ?>  后期静态绑定:为了避免子类重写静态属性后,使用继承来的方法仍然方法父类的静态属性,PHP5.3增加了一个新的语法,后期静态绑定,使用static关 ...