无法加载ui路由器嵌套状态页面

时间:2018-12-04 09:34:48

标签: angularjs angular-ui-router

我正在尝试将main.marketing-groups.detail嵌套为main.marketing-groups,但是当我打电话给$state.go('main.marketing-groups.detail');时,我得到的只是将URL更改为... / marketing-groups / detail,但HTML从父目录保留。将一些调试console.log放入marketingGroupsDetailController中,但看起来好像没有加载。这两个控制器确实存在于index.html中并已正确加载。

    .state('main.marketing-groups', {
        url: '/marketing-groups',
        views: {
            'content': {
                templateUrl: 'app/modules/marketing/groups/marketing-groups.tpl.html',
                controller: 'marketingGroupsController as vm'
            },
            'right-drawer@main': {}
        }
    })

    .state('main.marketing-groups.detail', {
        url: '/detail',
        views: {
            'content': {
                templateUrl: 'app/modules/marketing/groups/detail/marketing-groups-detail.tpl.html',
                controller: 'marketingGroupsDetailController as vm'
            },
            'right-drawer@main': {}
        }
    })

当我一点一点地更改代码时,可能有什么问题,但是没有任何效果。我试图避免这次使用ui-view。

也没有console.log错误。

1 个答案:

答案 0 :(得分:0)

我已经使这种方法起作用。如果您有更好的东西,请告诉我。

        .state('main.marketing', {
        url: '/marketing',
        views: {
            'content': {
                templateUrl: 'app/modules/marketing/marketing.tpl.html',
                controller: 'marketingController as vm'
            },
            'right-drawer@main': {}
        }
    })

    .state('main.marketing.groups', {
        url: '/groups',
        views: {
            'marketing@main.marketing': {
                templateUrl: 'app/modules/marketing/groups/marketing-groups.tpl.html',
                controller: 'marketingGroupsController as vm'
            },
            'right-drawer@main': {}
        }
    })

    .state('main.marketing.groups.detail', {
        url: '/detail',
        views: {
            'marketing@main.marketing': {
                templateUrl: 'app/modules/marketing/groups/detail/marketing-groups-detail.tpl.html',
                controller: 'marketingGroupsDetailController as vm'
            },
            'right-drawer@main': {}
        }
    })

marketing.tpl.html

<div ui-view="marketing"></div>