Page 123 - AngularJS权威教程
P. 123

12.4  $location 服务   103


                  { name: 'all' }
                                                                                                     1
                  需要注意,如果想要在控制器中访问这些变量,需要把$routeParams注入进控制器:

                  app.controller('InboxController', function($scope,$routeParams) {                  2
                      // 在这里访问$routeParams
                  });
                                                                                                     3
              12.4  $location 服务
                                                                                                     4
                  AngularJS提供了一个服务用以解析地址栏中的URL,并让你可以访问应用当前路径所对应
              的路由。它同样提供了修改路径和处理各种形式导航的能力。
                                                                                                     5
                      $location服务对JavaScript中的window.location对象的API进行了更优雅地封装,
                  并且和AngularJS集成在一起。
                                                                                                     6
                  当应用需要在内部进行跳转时是使用$location服务的最佳场景,比如当用户注册后、修改
              或者登录后进行的跳转。
                                                                                                     7
                  $location服务没有刷新整个页面的能力。如果需要刷新整个页面,需要使用$window.
              location对象(window.location的一个接口)。
                                                                                                     8
                  1. path()

                  path()用来获取页面当前的路径:                                                                 9

                  $location.path(); // 返回当前路径
                                                                                                     10
                  修改当前路径并跳转到应用中的另一个URL:

                  $location.path('/'); // 把路径修改为'/'路由
                                                                                                     11
                  path()方法直接和HTML5的历史API进行交互,所以用户可通过点击后退按钮退回到上一个
              页面。
                                                                                                     12
                  2. replace()

                  如果你希望跳转后用户不能点击后退按钮(对于登录之后的跳转这种发生在某个跳转之后的                                           13
              再次跳转很有用),AngularJS提供了replace()方法来实现这个功能:

                  $location.path('/home');                                                           14
                  $location.replace();
                  // 或者
                  $location.path('/home').replace();
                                                                                                     15
                  3. absUrl()

                  absUrl()方法用来获取编码后的完整URL:                                                           16
                  $location.absUrl()

                  4. hash()                                                                          17
                  hash()方法用来获取URL中的hash片段:
                                                                                                     18
                  $location.hash(); // 返回当前的hash片段
   118   119   120   121   122   123   124   125   126   127   128