角度的三级嵌套url

时间:2016-08-26 18:28:59

标签: javascript angularjs

这是我的app.js

 .state('dashboard', {
            url: '/dashboard',
           templateUrl : 'resources/components/dashboard/dashboard.html',
            controller : 'dashboardController',   


        }).state('dashboard.profile', {
            url: '/profile',
           templateUrl : 'resources/components/clinicprofile/profile.html',
            controller : 'profileController',


        }).state('dashboard.setting', {
            url: '/setting',
           templateUrl : 'resources/components/setting/settings.html',
            controller : 'profileController',

        }).state('dashboard.setting.user', {
            url: '/user',
           templateUrl : 'resources/components/setting/user.html',
            controller : 'profileController',

请注意我的三级嵌套网址在setup.html页面中设置时正常工作 但我不希望在用户访问时显示setting.html的内容

dashboard/setting/user

显示设置页面内容以及用户页面内容

我不想在用户位于用户页面时显示setting.html的内容

我想只显示此网址dashboard/setting/user上的用户内容我该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您不希望用户页面包含在设置页面中,则它不能是设置的子项,因此可能的解决方案是使用抽象状态并将设置URL更改为 setting /主

.state('dashboard', {
        url: '/dashboard',
        templateUrl: 'resources/components/dashboard/dashboard.html',
        controller: 'dashboardController',   

    }).state('dashboard.setting', {
        abstract: true,
        url: '/setting',
        template: '<ui-view></ui-view>',

    }).state('dashboard.setting.main', {
        url: '/main',
        templateUrl: 'resources/components/setting/settings.html',
        controller: 'profileController',

    }).state('dashboard.setting.user', {
        url: '/user',
        templateUrl : 'resources/components/setting/user.html',
        controller : 'profileController',
    })

UI Router documentation