我现在有一个简单的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。
知道我做错了什么?我尝试了几种解决方法,但每次我都会遇到非常类似的错误。
答案 0 :(得分:5)
如果您已阅读error page,则表示您忘记包含某些依赖项。请不要忘记包括它们。现在失败的是$ rootElement,因为你可以读错误。包括这个,然后再试一次,看看是否应该包含其他依赖项。
编辑: 好吧,我错了,经过一些阅读后我注意到了这个方法:
angular.injector(['myApp']).get('$location')
创建一个新的注入器实例。这不是你想要的。 所以我不知道你的情况如何,但如果你在AngularJS中,只需注入$ injector实例。如果没有在AngularJS中调用
$injector = angular.element([DOM element]).injector(); $injector.get('$location');