13

类似于以下内容:link: function($scope, element, attrs, $location) {

这可能吗?

4

2 回答 2

25

在指令的声明中,注入位置服务。

app.directive('myDirective', ['$location', function($location) {

 return {
  link: function(scope, elem, attrs) {
   // path() and url() can be used as getters or setters
   console.log($location.url());
   console.log($location.path());
  }
 };
}]);

如果您尝试获取当前位置,请使用location.path()或使用该$route服务。

两者的相关资料:

  1. $route 文档
  2. $location 文档
于 2013-10-02T14:36:28.523 回答
3

认为将服务注入指令它仍然未定义到链接函数中,因为您需要使用

location.hash = "#/path_name";

在链接功能中它将起作用

于 2016-02-03T06:34:58.093 回答