Page 127 - AngularJS权威教程
P. 127

12.6  更多关于路由的内容   107


                   原始的AngularJS evt对象;                                                              1
                   用户当前所处的路由;
                   上一个路由(如果当前是第一个路由,则为undefined)。
                                                                                                     2
                  3. $routeChangeError

                  AngularJS会在任何一个promise被拒绝或者失败时广播$routeChangeError事件。                               3
                  angular.module('myApp', [])
                      .run(function($rootScope, $location) {
                          $rootScope.$on('$routeChangeError', function(current, previous, rejection) {   4
                          });
                      });
                                                                                                     5
                  $routeChangeError事件有三个参数:

                   当前路由的信息;
                   上一个路由的信息;                                                                        6
                   被拒绝的promise的错误信息。
                                                                                                     7
                  4. $routeUpdate

                  AngularJS在reloadOnSearch属性被设置为false的情况下,重新使用某个控制器的实例时,
              会广播$routeUpdate事件。                                                                     8


              12.5.3  关于搜索引擎索引                                                                       9

                  Web爬虫对于JavaScript的胖客户端应用无能为力。为了在应用的运行过程中给爬虫提供支                                     10
              持,我们需要在头部添加meta标签。这个元标记会让爬虫请求一个带有空的转义片段参数的链接,
              服务器根据请求返回对应的HTML代码片段。
                                                                                                     11
                  <meta name="fragment" content="!"/>

              12.6  更多关于路由的内容                                                                        12


                                                                                                     13
              12.6.1  页面重新加载

                  $location服务不会重新加载整个页面,它只会单纯地改变URL。如果我们想重新加载整个                                      14
              页面,需要用$window服务来设置地址。

                  $window.location.href = "/reload/page";                                            15

              12.6.2  异步的地址变化                                                                        16

                  如果我们想要在作用域的生命周期外使用$location服务,必须用$apply函数将变化抛到
              应用外部。因为$location服务是基于$digest来驱动浏览器的地址变化,以使路由事件正常工                                      17
              作的。
                                                                                                     18
   122   123   124   125   126   127   128   129   130   131   132