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片段