Page 145 - AngularJS权威教程
P. 145

15.1 使用$http   125


                                                                                                     1


                       第15章                                                                          2

                                        同外界通信:XHR和
                                                                                                     3
                                        服务器通信

                                                                                                     4


                                                                                                     5

                  AngularJS应用是完全运行在客户端的应用。我们已经看到,可以构建一个完全不依赖任何
              后端,同时也能实现动态内容和响应的Web应用。                                                                6
                  没有后端的支持,我们只能展示随页面一起加载进来的数据。AngularJS提供了几种方式将                                       7
              应用同来自远程服务器的信息集成在一起。

                                                                                                     8
              15.1 使用$http


                  我们可以使用内置的$http服务直接同外部进行通信。$http服务只是简单的封装了浏览器                                       9
              原生的XMLHttpRequest对象。
                  $http服务是只能接受一个参数的函数,这个参数是一个对象,包含了用来生成HTTP请求的                                       10
              配置内容。这个函数返回一个promise对象,具有success和error两个方法。
                                                                                                     11
                          查看15.2节来了解关于可选配置选项的详细信息。

                                                                                                     12
                  这两个方法最基本的使用场景如下:

                  $http({                                                                            13
                    method: 'GET',
                    url: '/api/users.json'
                  }).success(function(data,status,headers,config) {
                    // 当相应准备就绪时调用                                                                    14
                  }).error(function(data,status,headers,config) {
                    // 当响应以错误状态返回时调用
                  });                                                                                15
                  请注意,看上去我们向$http中传入了一个回调函数供响应返回时调用,但事实并非如此。
              这个方法实际上返回了一个promise对象。                                                                 16
                  当promise返回时,我们可以将$http方法的运行结果当作变量一并返回,并将其他promise
              同它串联在一起,进行链式的调用。                                                                       17
                  在创建服务时会频繁使用链式调用技术,因此服务可以返回一个promise对象,而不需要回
              调函数。                                                                                   18
   140   141   142   143   144   145   146   147   148   149   150