angularjs – 如何使用angular-ui-router将路由配置拆分为多个文件?

前端之家收集整理的这篇文章主要介绍了angularjs – 如何使用angular-ui-router将路由配置拆分为多个文件?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
目前我有这样一个文件

app.config([
    '$locationProvider','$sceDelegateProvider','$sceProvider','$stateProvider',($locationProvider,$sceDelegateProvider,$sceProvider,$stateProvider) => {

        $locationProvider.html5Mode(true);
        $sceProvider.enabled(false);

        var home = {
            name: 'home',//template: '<div data-ui-view></div>',url: '/home/'
        };

        var homeAccess = {
            name: 'home.access',url: 'access',views: {
                'home@': {
                    templateUrl: 'app/access/partials/webapi.html'
                }
            },onExit: ['accessService',(acs: IAccessService) => {
                acs.clear();
            }]
        };



    $stateProvider
        .state(homeAccess)
        .state(home);
}])

问题是,我有这么多州,现在已经发展到超过1,200行.

是否可以将app.config拆分为多个文件,如果是这样,我该怎么做?

解决方法

您可以看一下这个,以了解如何在Angular中构建代码
Best Practices Directory Structure.
您可以使用状态创建不同的文件,并在每个功能文件夹中将它们分开.如果您不想按文件夹分隔它们,只需将它们放在单独的文件中即可.在每个文件中,您只需导出您注册为配置的功能.

这是本地路线(home-route.js):

function stateConfig ($locationProvider,$stateProvider) {
        $locationProvider.html5Mode(true);
        $sceProvider.enabled(false);

        var home = {
            name: 'home',template: 'Home',url: '/home'
        };



    $stateProvider
        .state(home);
}

module.exports = stateConfig;

这将是访问路由(home-access-route.js):

function stateConfig ($locationProvider,$stateProvider) {
        $locationProvider.html5Mode(true);
        $sceProvider.enabled(false);

        var homeAccess = {
            name: 'home.access',url: '/access',template: 'Access',parent: 'home'
        };



    $stateProvider
        .state(homeAccess)
}

module.exports = stateConfig;

然后在您的模块/应用程序的index.js文件中,您将执行以下操作:

var TestsRoute  = require('./home-route.js');
var HomeAccessRoute  = require('./home-access-route.js');

var app = angular.module('HomeAccess',[]);

app.config(['$locationProvider',HomeRoute]);    
app.config(['$locationProvider',HomeAccessRoute]);

module.exports = app.name

因此,在初始化应用程序的位置,您将拥有已创建的所有单独模块,并将它们注册为应用程序的依赖项

猜你在找的Angularjs相关文章