我们可以在一个 Angular 项目中创建两个 router.js 文件吗?

Posted

技术标签:

【中文标题】我们可以在一个 Angular 项目中创建两个 router.js 文件吗?【英文标题】:Can we make two router.js file in a single angular project? 【发布时间】:2017-07-29 01:15:50 【问题描述】:

在渲染视图时,我的 Angular UI 路由项目遇到了问题。我必须制作两个 router.js 文件。同一个项目中是否可以有两个 router.js 文件。这样做有什么坏处?

【问题讨论】:

你可以,它们将被“合并”并被应用程序视为一个。 【参考方案1】:

是的,您可以拥有多个路由文件,但这取决于需要。每个模块可以有单独的路由文件

【讨论】:

不会影响我的申请吗? @AnkitSaxena 它不应该影响任何东西。重要的是注册路由的moduleapp 名称。【参考方案2】:

您可以创建多个路由文件并在 app.js 中声明它们

创建文件 route1.js 和 route2.js(在路由目录下)并添加到 app.js 中,如下:

var routes1 = require('./routes/routes1');
var routes2 = require('./routes/routes2');

定义路线:

app.use('/one',routes1);
app.use('/two',routes2);

现在http://something.com/one/myroutename类型的api调用将被重定向到route1.js,http://something.com/two/myroutename将被重定向到route2.js

【讨论】:

【参考方案3】:

是的,你可以。这是我通常做的。每个组件/视图都有单独的路由文件。请记住将这些添加到您的 index.html 中。

app.js

angular.module('App', ['App.Configs']);
angular.module('App.Configs', []);

routeOne.route.js

angular.module('App.Configs')
    .config(['$routeProvider',
        function ($routeProvider) 

            $routeProvider
            .when('/routeOne', 
                template: '<route-one></reoute-one>',
                caseInsensitiveMatch: true,
            )
            .otherwise(
                redirectTo: '/'
            )
    ]);

routeTwo.route.js

angular.module('App.Configs')
    .config(['$routeProvider',
        function ($routeProvider) 

            $routeProvider
            .when('/routeTwo', 
                template: '<route-two></reoute-two>',
                caseInsensitiveMatch: true,
            )
            .otherwise(
                redirectTo: '/'
            )
    ]);

【讨论】:

以上是关于我们可以在一个 Angular 项目中创建两个 router.js 文件吗?的主要内容,如果未能解决你的问题,请参考以下文章

如何在同一个项目中创建具有 Angular7 + WebAPI + AzureAD 的 .NET Core 应用程序

我们应该在 Angular 应用程序中创建的所有模块中导入 BrowserModule 吗?

在 Windows 中创建新项目时找不到 ng 命令 angular-cli

在 angular-ui-bootstrap 中创建一个两列下拉列表

在 Visual Studio IDE 中创建/生成新 Angular 组件的简单方法?

在 Angular 中添加图像文件