Page 125 - AngularJS权威教程
P. 125

12.5  路由模式   105


                   replace(可选,字符串)                                                                  1
                  想要修改成的路径。

                                                                                                     2
              12.5 路由模式

                                                                                                     3
                  不同的路由模式在浏览器的地址栏中会以不同的URL格式呈现。$location服务默认会使用
              标签模式来进行路由。
                                                                                                     4
                  路由模式决定你的站点的URL长成什么样子。

                  标签模式
                                                                                                     5
                  标签(hashbang)是AngularJS用来同你的应用内部进行链接的技巧。标签模式是HTML5模
              式的降级方案,URL路径会以#符号开头。标签模式不需要重写<a href=""></a>标签,也不需                                     6
              要任何服务器端的支持。如果没有进行额外的指定,AngularJS将默认使用标签模式。

                  使用标签模式的URL看起来是这样的:                                                                 7
                  http://yoursite.com/#!/inbox/all

                  如果要显式指定配置并使用标签模式,需要在应用模块的config函数中进行配置:                                            8
                  angular.module('myApp', ['ngRoute'])
                      .config(['$locationProvider', function($locationProvider) {                    9
                          $locationProvider.html5Mode(false);
                      }]);
                  我们还可以配置hashPrefix,也就是标签模式下标签默认的前缀!符号。这个前缀也是                                        10
              AngularJS在比较老的浏览器中降级机制的一部分。这个符号是可以配置的:

                  angular.module('myApp', ['ngRoute'])                                               11
                      .config(['$locationProvider', function($locationProvider) {
                          $locationProvider.html5Mode(false);
                          $locationProvider.hashPrefix('!');                                         12
                      }]);


              12.5.1  HTML5 模式                                                                       13

                  AngularJS支持的另外一种路由模式是html5模式。在这个模式中,URL看起来和普通的URL                                  14
              一样(在老式浏览器中看起来还是使用标签的URL)。例如,同样的路由在HTML5模式中看起来
              是这样的:
                                                                                                     15
                  http://yoursite.com/inbox/all
                  在AngularJS内部, $location服务通过HTML5历史API让应用能够使用普通的URL路径来                              16
              路由。当浏览器不支持HTML5历史API时,$location服务会自动使用标签模式的URL作为替代
              方案。
                                                                                                     17
                  $location服务还有一个有趣的功能,当一个支持HTML5历史API的现代浏览器加载了一个
              带标签的URL时,它会为用户重写这个URL。
                                                                                                     18
   120   121   122   123   124   125   126   127   128   129   130