Javascript $route.current return未定义?
为什么我在这里没有定义?当我执行Javascript $route.current return未定义?,javascript,angularjs,Javascript,Angularjs,为什么我在这里没有定义?当我执行控制台.log($route)时,我可以看到该对象,这很奇怪。$route.current在$rootScope.$中可用,'$locationChangeSuccess'或在controller中。但如果您想在解析路由之前访问当前路由(或预期的当前路由),例如在“$locationChangeStart”上的$rootScope.$中或在运行或配置函数中,则可以使用$route.routes[$location.path()] 但请注意,带有参数的路由将导致错误
控制台.log($route)
时,我可以看到该对象,这很奇怪。$route.current在$rootScope.$中可用,'$locationChangeSuccess'
或在controller中。但如果您想在解析路由之前访问当前路由(或预期的当前路由),例如在“$locationChangeStart”上的$rootScope.$中或在运行或配置函数中,则可以使用$route.routes[$location.path()]
但请注意,带有参数的路由将导致错误$route.routes[$location.path()]
,这一点很重要,因为$route.routes[key]
和$location.path()
的键将不匹配。您可以通过控制台记录$location.path()
和$route.routes
内部运行函数来证明这一点
如果已将额外的自定义属性附加到路由,则可以使用$route.routes[$location.path()]
之类的工具轻松访问它们
$route.routes[$location.path()].isLoginRequired
您的意思是活动选项卡
?可能只是一个输入错误。@仍然不知道这不是问题所在,我修正了输入错误,所以我猜$route.current
不是未定义的,而是$route.current.activeTab
是。如果$route.current
未定义,则该行将崩溃,而不是打印未定义。所以真正的问题不是$route.current
,而是它的属性activeTab
。你认为这些财产来自哪里?
.when('/',{
controller : 'secondController',
activeTab : 'admin'
})
app.controller('secondController', ['$route', function($route){
console.log($route.current.activeTab);
}])