2017-04-25 141 views
1

我使用a-Tag給定的參數定義了一個動態狀態。Angular UI路由器:帶動態參數的默認狀態

模板:

<a ui-sref-active="active" ui-sref=".item({ itemId: item.Id })"> 

狀態定義:

 .state('home.item', { 
     url: '/{itemId}', 
     component: 'item', 
     resolve: { 
      item: function(items, $stateParams) { 
       return items.find(function(item) { 
        return item.Id === $stateParams.itemId; 
       }); 
      }   
     } 
    }) 

在模板那裏有一個NG重複生成導航結構。我只是想,激活與第一環節:

$urlRouterProvider.otherwise(/welcome/{item.Id}) 

元素的ID被改變,所以我不能硬編碼,我需要得到第一個鏈接的動態值。由於我不點擊任何負載,狀態不知道第一個元素的ID參數,因此不會選擇正確的狀態。

任何人都可以幫忙嗎?

回答

1

我想你可以試試這個:

$urlRouterProvider.otherwise('/welcome/') 

我認爲它應該home狀態的home.item

和家長在home狀態控制器,您可以檢查:

var resolvedId; // set that dynamic id in home controller 

    if(!$stateParams.id) { 
     $state.go('home.item', {id: resolvedId}); 
    } 

這裏是我的JSFiddle demo

+0

這工作完美!謝謝 – Mikaelik

相關問題