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

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

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

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

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

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

你能给我一个设计方法的建议吗?即使您可以向我指出一些关于如何构建 Angular2 库的指南或帖子,这也会有很大帮助。

最佳答案

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

如果您使用开箱即用的预配置路由发送您的图书馆,您会强制图书馆的用户遵循您的路由理念。如果某人已经定义了路由“/search”,而您可能会覆盖该路由,那将导致挫败感。同样,如果有人决定使用自定义路由服务而不是 Angular 的,他们可能无法使用您的库。或者,如果有人想将所有 View 放入选项卡式 View 中的一个 Component 中,这可能不太容易实现。

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

关于angular - 如何创建具有多个路由的 Angular2 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41643876/

相关文章:

javascript - 从给定 URL 获取数据时正确映射到接口(interface)

Angular HTTP 拦截器执行内部 http 请求两次

node.js - 更新到 Mac OSX 10.9.4 后找不到 npm 命令

javascript - meteor 同步执行系统命令

javascript - angular2 使用 Observable(Http) 无需重新加载

javascript - Lockfile解释,每一行到底是什么意思? yarn 锁

java - angularjs ui-router Controller 如何从 java 后端重定向中读取参数?

javascript - UI Router - 在状态之间转换时记住滚动位置

javascript - 无法使用 ui-router 从 url 栏更改状态

javascript - Angular 7 生产版本不加载样式和 js