1. 创建一个Service,去服务器读取数据:

  1. // $q 是内置服务,所以可以直接使用
  2. ngApp.factory('UserInfo', ['$http', '$q', function ($http, $q) {
  3. return {
  4. query : function() {
  5. var deferred = $q.defer(); // 声明延后执行,表示要去监控后面的执行
  6. $http({method: 'GET', url: 'scripts/mine.json'}).
  7. success(function(data, status, headers, config) {
  8. deferred.resolve(data);  // 声明执行成功,即http请求数据成功,可以返回数据了
  9. }).
  10. error(function(data, status, headers, config) {
  11. deferred.reject(data);   // 声明执行失败,即服务器返回错误
  12. });
  13. return deferred.promise;   // 返回承诺,这里并不是最终数据,而是访问最终数据的API
  14. } // end query
  15. };
  16. }]);

2. 在Controller上(以同步方式)使用这个Service:

  1. angular.module('ngApp')
  2. .controller('MainCtrl', ['$scope', 'UserInfo', function ($scope, UserInfo) { // 引用我们定义的UserInfo服务
  3. var promise = UserInfo.query(); // 同步调用,获得承诺接口
  4. promise.then(function(data) {  // 调用承诺API获取数据 .resolve
  5. $scope.user = data;
  6. }, function(data) {  // 处理错误 .reject
  7. $scope.user = {error: '用户不存在!'};
  8. });
  9. }]);

随机推荐

  1. 排查Hive报错:org.apache.hadoop.hive.serde2.SerDeException: java.io.IOException: Start of Array expected

    CREATE TABLE json_nested_test ( count string, usage string, pkg map<string,string>, languages ...

  2. cocos2d-x v3.0新特性及使用

    八月份cocos2d-x官网发布了v3.0版本,这次更新的内容特别多,包括2dx的架构以及使用 总得来说,给开发者带来了很大的便利: 运行环境需求: Android 2.3 or newer iOS ...

  3. ubuntu下修改文件夹权限

    常用方法如下: sudo chmod 600 ××× (只有所有者有读和写的权限)sudo chmod 644 ××× (所有者有读和写的权限,组用户只有读的权限)sudo chmod 700 ××× ...

  4. Orchard运用 - 学习资源分享

    这段时间研究Orchard,看到一些资源十分有用. 比如国内还是有些牛人在分享心得,在此也广播一下给新手: JustRun对Orchard的一些代码分析 Orchard源码分析 Orchard中文社区 ...

  5. 在 Windows 上快速安装并运行 Laravel 5.x

    安装 PHP 注意一:Laravel 5.0 开始对 PHP 版本的要求是 >=5.4,Laravel 5.1 要求 PHP 版本>=5.5.9,所以,建议大家尽量安装 5.5.x 的最新 ...

  6. 比较String.substring()、String.slice()、String.substr()的区别

    String.substring().String.slice().String.substr()这三者都能从String字符串中截取一部分,那么它们在使用上有什么不同么? 一.slice() 方法提 ...

  7. 如何用代码方式获取Web.config中system.serviceModel/client节点的address

    以下代码GetAPIAddress将返回:http://localhost:2555/APITEST.asmx using System.Web.Configuration;using System. ...

  8. 无需编码开发快速设计互动式UI - uilang

    uilang是一个非常小巧的ui类库,可以帮助不熟悉前端代码的web设计人员快速的开发互动式UI.你只需要使用“语义式”的说明来控制元素的动态效果. 开发中你只需要在<code>标签内部输 ...

  9. rtsp摘要认证协议(Response计算方法)

    rtsp摘要认证协议(Response计算方法) 说明: 例如:OPTIONS rtsp://192.168.123.158:554/11RTSP/1.0   RTSP客户端应该使用username ...

  10. Unity3D Android播放视频

    http://blog.csdn.net/awnuxcvbn/article/details/17719789 using UnityEngine; using System.Collections; ...