2015-06-30 32 views
0

我希望能夠訪問用於路由的路徑格式。例如,假設以下配置:訪問用於路由的路徑格式

app.config(function($routeProvider){ 
    $routeProvider 
     .when('/users/:id/edit', { 
      templateUrl: 'users/form.html', 
      controller: 'UsersController' 
     }) 
     .when('/users/:id', { 
      templateUrl: 'users/show.html', 
      controller: 'UsersController' 
     }) 
     .otherwise({ redirectTo: '/' }); 
}); 

我想我UsersController能夠訪問到被用於路由路徑格式字符串(例如'/users/:id/edit')。我一直能找到這樣做的唯一方法是在控制器中注入$route作爲依賴項,然後訪問屬性$route.current.$$route.originalPath。這有效,但它使用'私人'$$route屬性。如果可能,我想採用更合理的方法。

+0

'$ location.hash()'會給你一樣的.. –

+0

@pankajparkar你確定嗎?它對我沒有任何回報,這與我期望的基於文檔的一致:https://docs.angularjs.org/api/ng/service/$location – maxedison

+0

哦..這是我的壞..那將是'$ location.url()'https://docs.angularjs.org/api/ng/service/$location#url –

回答

0

$$模式是「保護」庫的內部免於不知情的用戶修補它們。也就是說,有時候你需要對內部進行修改;例如,你正在創建特定的東西,而不是典型的用例。

必須知道使用的路徑格式非常非典型,因此我認爲使用$route.current.$$route.originalPath可能是正確的解決方案。它通常是「隱藏」的,因爲通常我們不需要這個值,但最終它們確實在應用程序中有一個函數,看起來你需要它。