我们可以在一个 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 它不应该影响任何东西。重要的是注册路由的module
或app
名称。【参考方案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 中创建一个两列下拉列表