2017-03-17 85 views
0

我想從一個網址/projects導航到網址/projects/{name},但我需要通過$stateParams.id解析資源。我該怎麼做?沒有網址的角度stateParams

現在我有這樣的事情:

$stateProvider.state('project.detail', { 
... 
url: '/projekt/{name}/{id}', 
... 
resolve: { 
      project: ['$stateParams', 'ProjectService', function($stateParams, ProjectService) { 
       return ProjectService.get({id : $stateParams.id}).$promise; 
      }] 
     } 
...; 

但是,當我從網址中移除{ID}: '...',這是行不通的。

我的前端導航:

ui-sref="project.detail({name: project.name, id: project.id})"

而且我不希望有網址... /項目/超迴路列車/ 5462

但只有... /項目/ hyperloop

謝謝!

+0

只是爲了把事情說清楚,事件:您可以在狀態配置在params屬性指定它們以某種方式獲得'id'? – eminlala

回答

1

您可以使用參數,而無需在狀態URL中指定它們。雖然你想去`/項目/ name`,你還願意

$stateProvider.state('project.detail', { 
    ... 
    url: '/projekt/{name}', 
    params: { 
     id: null 
    }, 
    resolve: { 
      project: ['$stateParams', 'ProjectService', function($stateParams, ProjectService) { 
       return ProjectService.get({id : $stateParams.id}).$promise; 
      }] 
    } 
    ... 
}) 

請檢查ui-router docs更多細節

+1

我認爲將id設置爲null將覆蓋從視圖中的值,但它不會。謝謝! –