2015-09-05 116 views
0
.when('/',{ 
    controller : 'secondController', 
    activeTab : 'admin' 
}) 

app.controller('secondController', ['$route', function($route){ 
    console.log($route.current.activeTab); 
}]) 

爲什麼我在這裏弄不明白?當我做console.log($route)時,我可以看到對象,這很奇怪。

+2

你真的是'actiiveTab'訪問它們?可能只是一個錯字。 –

+0

@still_learning沒有這不是問題,我修正了錯字 –

+0

所以我猜'$ route.current'不是'undefined',而是'$ route.current.activeTab'。如果'$ route.current'未定義,則該行將崩潰而不是打印未定義。所以真正的問題不是'$ route.current',而是它的屬性'activeTab'。你期望該物業來自哪裏? –

回答

1

$ route.current在$rootScope.$on '$locationChangeSuccess'或控制器中可用。但是,如果您想在路線解決之前訪問當前路線(或預期當前路線),例如在$rootScope.$on "$locationChangeStart"或在您的運行或配置功能中,則可以使用$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