$q服务的使用
1. 创建一个Service,去服务器读取数据:
- // $q 是内置服务,所以可以直接使用
- ngApp.factory('UserInfo', ['$http', '$q', function ($http, $q) {
- return {
- query : function() {
- var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行
- $http({method: 'GET', url: 'scripts/mine.json'}).
- success(function(data, status, headers, config) {
- deferred.resolve(data); // 声明执行成功,即http请求数据成功,可以返回数据了
- }).
- error(function(data, status, headers, config) {
- deferred.reject(data); // 声明执行失败,即服务器返回错误
- });
- return deferred.promise; // 返回承诺,这里并不是最终数据,而是访问最终数据的API
- } // end query
- };
- }]);
2. 在Controller上(以同步方式)使用这个Service:
- angular.module('ngApp')
- .controller('MainCtrl', ['$scope', 'UserInfo', function ($scope, UserInfo) { // 引用我们定义的UserInfo服务
- var promise = UserInfo.query(); // 同步调用,获得承诺接口
- promise.then(function(data) { // 调用承诺API获取数据 .resolve
- $scope.user = data;
- }, function(data) { // 处理错误 .reject
- $scope.user = {error: '用户不存在!'};
- });
- }]);
随机推荐
- android开源框架之 andbase
andbase开发框架介绍:andbase是为Android开发人员量身打造的一款开源类库产品,您能够在本站中获取到最新的代码,演示样例以及开发文档. 下载地址:http://download.csd ...
- 关于FFmpegInterop项目的编译
如果是从git 上下载的最新版本 FFmpeg,那么打开VS2015编译时会报出一个错误 C4996 'av_free_packet': 被声明为已否决 FFmpegInterop ...
- zedboard--基于zedboard的demo系统的boa服务器搭建(二十一)
zedboard提供的demo系统很迷你,但是也能移植嵌入式Web服务器的.这里就移植boa服务器. 1.下载Boa服务器源代码(安装好了交叉编译器) http://www.boa.org/,选择最后 ...
- 设置tomcat配置文件,在Myeclipse中修改jsp文件之后不用重启tomcat
在Myeclipse中创建的Web程序在修改类或者jsp页面后需要重动ttomcat的,要重新加载一次的,即重新启动tomcat一次.重启时比较慢,及浪费资源及时间, 设置tomcat配置文件,在My ...
- 浏览器自动化测试初探 - 使用phantomjs与casperjs
收录待用,修改转载已取得腾讯云授权 作者:yangchunwen 首先要解释一下为什么叫浏览器自动化测试,因为本文只关注发布后页面功能的自动化测试,也就是UI层面的自动化. 浏览器测试有别于js代码的 ...
- [Algorithm -- Dynamic programming] How Many Ways to Decode This Message?
For example we have 'a' -> 1 'b' -> 2 .. 'z' -> 26 By given "12", we can decode t ...
- [Functional Programming] Write a simple version of Maybe
Maybe has two types: Just / Nothing. Just() will just return the value that passed in. Nothing retur ...
- 数据库:mongodb与关系型数据库相比的优缺点zz (转)
与关系型数据库相比,MongoDB的优点:①弱一致性(最终一致),更能保证用户的访问速度:举例来说,在传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值 ...
- STL - 常用顺序容器代码
不多说,看代码 #include <iostream> #include <vector> #include <deque> #include <list&g ...
- BLDC之六种霍尔检测换相排序表
/* 1 BLDC 的六种霍尔换相排列表 2 包含正反转 */ //#define BLDC_HALL_CAB //-- //#define BLDC_HALL_CBA //#define BLDC_ ...