angularjs – UI路由器:导航到抽象父状态时重定向到子状态

前端之家收集整理的这篇文章主要介绍了angularjs – UI路由器:导航到抽象父状态时重定向到子状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在我的音乐应用程序中,我对应用程序的顶级状态进行了重复操作以创建导航链接.其中一个名为library的顶级状态是抽象的,并且具有子状态(可以使用制表符导航).由于我使用的是ng-repeat,因此抽象状态具有ui-sref =“library”的指令.但是,不可能导航到这样的抽象父状态,而是需要编写ui-sref =“library.albums”.由于直接来自州提供商的ng-repeat数据,我无法做到这一点.如何在“库”上设置默认子状态,以便每当访问该状态时,它都会重定向到子项?

这是我的设置图:

enter image description here

解决方法

不幸的是,您无法使用ui-sref链接到抽象状态.

你可以尝试类似的东西:

$rootScope.$on('$stateChangeStart',function(event,toState,toParams){
    if(toState.name == 'library'){
        event.preventDefault();
        $state.go('library.albums',toParams);
    }
}

而不是硬编码每个状态重定向,你可以做类似的事情:

$stateProvider
    .state('library',{
        url: '/library',data: {
            redirect: 'library.albums'
        }
    })
    .state('library.albums',{
        url: '/albums',data: {
            redirect: false
        }
    });

$rootScope.$on('$stateChangeStart',toParams){
    if(toState.data && toState.data.redirect){
        event.preventDefault();
        $state.go(toState.data.redirect,toParams);
    }
}

猜你在找的Angularjs相关文章