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

时间:2017-01-13 21:42:07

标签: angular npm angular-ui-router shared-libraries components

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

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

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

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

请你建议我一个设计方法。即使您可以向我指点或如何构建Angular2库,也会有很大的帮助。

2 个答案:

答案 0 :(得分:2)

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

如果您的库已预先配置了预先配置的路由,则会强制您的库用户遵循您的路由提示。如果有人有路线" /搜索"已定义,你可能会覆盖该路线,这将导致挫败感。同样,如果有人决定使用自定义路由服务而不是Angular,他们可能无法使用您的库。或者,如果有人想要在选项卡式视图中将所有视图放入一个Component,则可能不太可能。

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

答案 1 :(得分:0)

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

您说的这部分是正确的。您可以使用yoir库中的route并像正常的角度应用程序一样导航。只要确保您在库中具有用于这些路由的相应组件即可。 将您的库路由类导出到public_api。 沿着库模块将RoutingModule导入到您的应用中。