从进样器访问$ location

时间:2013-12-19 05:48:37

标签: angularjs

我现在有一个简单的angularjs应用程序,只有一个路由器:

angular.module('myApp', ['ngRoute'])
            .config(['$routeProvider', function($routeProvider) {
                $routeProvider.when('/editFilter/:id', {templateUrl: '/webapp/template/filterDetail'});
            }])

我的目标是在需要时调用editFilter模板。 我正在尝试检索这样的$位置:

angular.injector(['myApp']).get('$location')

但是

失败了
  

错误:[$ injector:unpr]   http://errors.angularjs.org/1.2.1/ $注射器/ unpr?P0 =%24rootElementProvider%20%3 C-%20%24rootElement%20%3 C-%20%24location%20%3 C-%20%24route

如果我致电angular.injector(['myApp']).get('$location'),则返回true。

知道我做错了什么?我尝试了几种解决方法,但每次我都会遇到非常类似的错误。

1 个答案:

答案 0 :(得分:5)

如果您已阅读error page,则表示您忘记包含某些依赖项。请不要忘记包括它们。现在失败的是$ rootElement,因为你可以读错误。包括这个,然后再试一次,看看是否应该包含其他依赖项。

编辑:  好吧,我错了,经过一些阅读后我注意到了这个方法:

angular.injector(['myApp']).get('$location')

创建一个新的注入器实例。这不是你想要的。 所以我不知道你的情况如何,但如果你在AngularJS中,只需注入$ injector实例。如果没有在AngularJS中调用

$injector = angular.element([DOM element]).injector();
$injector.get('$location');