2017-04-25 147 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