如何创建具有多个路由的Angular2库?

问题描述 投票:9回答:2

我是Angular2的新手,我需要构建一个可重用的库,它将被多个应用程序用作html标记。

这个可重用的库将有多个页面,如搜索,创建,编辑等,这些页面转换为库本身内的多个路径。但是Git上的大多数库都没有使用路由器。

所以我的问题是如何设计我的多页可重用库?

我应该将所有内容(搜索,创建,编辑)放在一个组件中,并使用ngIf来显示/隐藏同一页面中的部分。但我相信应该有一些方法来处理库中的路由,而不会弄乱消费应用程序路由。

你能告诉我一个设计方法吗?即使您可以向我指导如何构建Angular2库的指南或帖子,这将是非常有帮助的。

angular npm angular-ui-router shared-libraries components
2个回答
2
投票

我会避免将路由信息直接放在库中。在您的库上构建的每个应用程序可能具有不同的路由机制:不同的路由名称,不同的路由保护,甚至可能是不同的路由库。

如果您的库已预先配置了预配置的路由,则会强制您的库用户遵循您的路由创意。如果某人已经定义了“/ search”路由,并且您可能会覆盖该路由,那么这将导致挫败感。同样,如果有人决定使用自定义路由服务而不是Angular,他们可能无法使用您的库。或者,如果有人想在选项卡式视图中将所有视图放入一个Component,那可能并不容易。

我的建议是运送一个NgModule,宣布一些Components。允许您的用户以他们想要的方式使用这些组件。如果他们使用所有组件,他们可以为每个组件设置一个路由。如果他们想将所有这些都放在一个页面上的标签中,他们也可以这样做。


0
投票

这个可重用的库将有多个页面,如搜索,创建,编辑等,这些页面转换为库中的多个路径。

你说的这部分是正确的。你可以使用yoir库里面的路线,像普通的角度应用一样导航。只需确保您的库中有这些路径的相应组件。将库路由类导出到public_api。沿着库模块将RoutingModule导入您的应用程序。

© www.soinside.com 2019 - 2024. All rights reserved.