Ui-view在ui-view中

时间:2015-03-09 16:29:06

标签: javascript angularjs angular-ui-router

我的应用程序有多个模块,并且使用ui-view在这些模块之间切换。 我的想法是在这些父$ stateProvider中包含这些模块中的另一个$ stateProvider,因此它可以在这些模块内导航而不需要重新加载页面。

外部的$ stateProvider是:

$stateProvider
            .state('core',{
                url: '/core'
            })
            .state('thing', {
                url: '/core/thing',
                templateUrl: './modules/thing/views/base.html'
            })
            .state('people',{
                url: '/core/people',
                templateUrl: './modules/people/views/list.html'
            })
    })

这是一个例子,但这个系统可以扩展很多。我想在负责人状态的模块中使用$ stateProvider。在模块&app;人员'内,使用此配置:

 $stateProvider
            .when('list',{
                url: 'list/',
                templateUrl: 'views/list.html',
                controller: 'ListController',
                controllerAs: 'list'
            })
            .when('insert',{
                url: 'insert/',
                templateUrl: 'views/form.html',
                controller: 'FormController',
                controllerAs: 'form'
            })
            .when('edit',{
                url: 'edit/:id',
                templateUrl: 'views/form.html',
                controller: 'FormController',
                controllerAs: 'form',
                resolve: {
                    entity: ['EntityService', '$stateParams', function (EntityService, $stateParams) {
                        return EntityService.load($stateParams.id);
                    }]
                }
            })

这可能吗?

1 个答案:

答案 0 :(得分:0)

这样做很容易。对此问题感到抱歉,但您必须这样做:

$stateProvider
            .state('thing.list', {
                url: '/list',
                templateUrl: './modules/thing/views/list.html',
                controller: 'ListController',
                controllerAs: 'list'
            })
            .state('thing.insert', {
                url: '/insert',
                templateUrl: './modules/thing/views/form.html',
                controller: 'FormController',
                controllerAs: 'form'
            })
            .state('thing.edit', {
                url: '/edit/:id',
                templateUrl: './modules/thing/views/form.html',
                controller: 'FormController',
                controllerAs: 'form'
            })

在内部的模块中。