Angular ui-router:带动态参数的默认状态

时间:2017-04-25 19:39:05

标签: angularjs angular-ui-router

我使用a-Tag中的给定参数定义了动态状态。

模板:

<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-repeat,它生成一个导航结构。我只想激活第一个链接:

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

元素的ID正在改变,所以我不能硬编码,我需要获得第一个链接的动态值。因为我没有在加载时点击任何东西,所以状态不知道第一个元素的ID参数,因此没有选择正确的状态。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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