默认为Angular UI-Router嵌套视图

时间:2015-08-02 07:18:58

标签: angularjs angularjs-routing angular-ui-router

当我导航到加载主模板的父状态配置文件时,我默认尝试打开状态 'profile.general'

当导航/ profile url时,如何激活ui-view的嵌套状态?

$urlRouterProvider.otherwise("/profile/general");

$stateProvider.state('profile', {
    url: '/profile',
    abtract: true,
    views: {
        "main": {
            controller: 'ProfileCtrl',
            templateUrl: 'src/app/profile/index.tpl.html'
        }
    }
}).state('profile.general', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-general.html'
    //controller: 'ProfileCtrl'
}).state('profile.security', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-security.html'
}).state('profile.social', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-social.html'
}).state('profile.privacy', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-privacy.html'
}).state('profile.payments', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-payments.html'
}).state('profile.restrictions', {
    //url: '/register/details',
    templateUrl: 'src/app/profile/profile-restrictions.html'
});
})

HTML

<div id="profile-views" ui-view></div>

1 个答案:

答案 0 :(得分:3)

a working plunker

这些行应该有所帮助:

$urlRouterProvider.when("/profile", "/profile/general");
$urlRouterProvider.otherwise("/profile/general");

我们应该将 url 提供给一般子状态:

.state('profile.general', {
    //url: '/register/details',
    url: '/general',
    templateUrl: 'src/app/profile/profile-general.html'

所以,有了这些,我们就会有 .when 重定向...每当用户只定位抽象状态时 - 会重定向到所选的网址。

此外,由于我们为孩子介绍了网址,因此我们可以使用 .otherwise 作为整体默认状态。

其他方法如何,省略一个孩子的网址(只是一个孩子)

How to: Set up a default/index child state

检查here