是否可以在 Angular 2 中动态构建添加路由? [复制]

2024-02-21

我正在构建一个 cms,用户可以在其中选择要使用的页面。因此,如果用户想要一个联系页面,他们会选择它并为其填写一些内容,他们的网站就会有一个contact例如路线。基于此,是否可以根据用户是否想要或不想要特定页面来动态添加角度路由?


是的。有多种方法可以实现您想要的目标。您可以使用router.resetConfig使用新配置重置路由器的配置:

this.router.resetConfig([
 { path: 'somePath', component: SomeComponent},
 ...
]);

你也可以push路由到配置:

this.router.config.push({ path: 'somePath', component: SomeComponent });

我这样做的另一种方法是,我创建了一种用户可以使用 TinyMCE 之类的东西构建页面并指定他们希望页面具有的 url 路径的方法。在 Angular 中,我在路由器中指定了通配符路由{ path: '**', component: ComponentBuilder },其中 ComponentBuilder 组件将从数据库中获取与某人请求的路径相对应的模板,然后使用该模板动态生成组件。如果数据库中不存在模板,则正常Page cannot be found模板已渲染。

两种方法都有效。这取决于您希望应用程序如何运行以及如何构建用户创建的页面。

自从我在版本 2 rc4 中提出解决方案以来,有更多关于如何创建动态组件的文档和示例。我没有使用过其中任何一个,但看起来很有帮助:

动态组件的 NPM 包 https://www.npmjs.com/package/angular2-dynamic-component

关于动态组件加载器的 Angular 文档 https://angular.io/docs/ts/latest/cookbook/dynamic-component-loader.html

动态创建组件 http://blog.rangle.io/dynamically-creating-components-with-angular-2/

另一篇关于动态创建组件的文章 https://blog.lacolaco.net/post/dynamic-component-creation-in-angular-2/

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

是否可以在 Angular 2 中动态构建添加路由? [复制] 的相关文章

  • 具有 Universal 和 Ionic 的 Angular SSR 不会在页面源中显示实际数据

    我有一个 nguniversal 的 Angular 11 项目 我的主页正在从内部 翻译键对象 和外部 用于显示链接列表的快速节点服务器 服务获取数据 后端域与前端域地址不同 该网站显示正确 但由于某种原因 当我检查该网站时 最初未加载翻
  • Angular2 - 添加新的
  • 项目 onClick 事件
  • 我使用 ngFor 迭代数组以便在列表中显示它们 但我无法在列表中添加新项目 在 Onclick 事件期间我得到一个空的 li 也许我没有链接正确的东西 指令 或者是什么 也许我使用了错误的变量 我的导出类有我的构造函数 export cl
  • 将 JS 库 xml2js 与 Angular 2 结合使用

    我正在尝试在 Angular 2 带有 TypeScript 的 RC 1 Web 应用程序中使用 xml2js 作为 XML 解析器 但是我只收到一些错误并且没有有效的解决方案 这是我一步一步所做的 通过安装 xml2jsnpm inst
  • Angular 2 中的动态管道

    我正在尝试创建一个组件 您可以在其中传递应用于组件内部列表的管道 通过测试和寻找答案 我发现唯一的解决方案似乎是创建类似的东西
  • 滑动浏览段选项卡 - Ionic 3

    下面的代码使用 ionic 3 中的片段 文档显示了 ngSwitch ngModel 的使用 但我想简单地在该段上滑动并切换到另一个段选项卡 我怎样才能实现这个目标 我对滑动顶部的选项卡不感兴趣 但通过滑动内容我想更改分段选项卡
  • Exceljs:迭代每行和每列的每个单元格

    我想在所有单元格中添加粗边框 这是一个有角度的项目 我正在使用打字稿 我可以为 1 个单元格做到这一点 worksheet getCell A1 border top style thick left style thick bottom
  • 如何使用 Angular CLI 添加应用程序范围的 CSS 文件?

    我想向我的 Angular 2 应用程序添加一些分片样式 例如字体和配色方案等将在任何地方使用的东西 过去 我总是通过在索引页面添加这样的标签来完成此操作 这不适用于 CLI 用于为应用程序提供服务的任何内容 我尝试在构建后手动将 css
  • 很棒的字体图标没有出现在 Angular 5 中

    我按照说明安装了它 首先我输入了 npm install save font awesome angular font awesome 并且一切都正确安装了 然后我换了 angular cli json包含这样的 css styles st
  • 在 pre 标签内电子加载 html

    我最近创建了一个电子 角度应用程序 它在内部运行以下内容main ts win loadURL url format pathname path join dirname dist index html protocol file slas
  • ng run project:deploy - 项目目标不存在

    我有一个 Angular Web App 的工作生产版本 我的 Azure 帐户 免费套餐 上有一个有效订阅 其中包含 AppService 计划 应用服务 资源组 存储帐户 KeyVault SQL Server 和 SignalR 我想
  • 在 Angular 7 项目中读取来自第三方服务器的 SAML 响应

    我已经创建了一个角 7项目 http myproject com 如果用户未登录 我会将用户重定向到另一个安全身份验证服务器 https secureauth com 登录 这里提示输入用户名和密码 然后检查用户凭据 一旦用户成功登录到安全
  • 如何在 Angular 2 Material Autocomplete 中获取所选项目的值

    我使用 Angular Material 创建了一个自动完成字段 并成功从 Web api 获取国家 地区列表 CountryID gt 项目值 或索引 国家 地区 gt 项目文本 当我尝试获取所选项目的值 而不是文本 时 它会按预期返回文
  • 具有动态名称的 Angular Material 2 日期选择器

    我正在尝试实现具有动态名称的日期选择器组件 我正在使用 Angular 4 开发基于 Angular Material 2 的项目 这是我的实现
  • Mat-table 多行内的多行

    我想要的内容如下图所示 我使用 Angular Material 7 x 并使用 Mat Table 实现 如下所述 https material angular io components table overview https mat
  • “.builders['browser']”应该具有必需的属性“class”

    使用 npm install 成功安装依赖项后 在运行服务器时出现以下错误 Schema validation failed with the following errors Data path builders browser shou
  • Highcharts / Highmaps with Angular - 无法运行演示

    我正在发现 Highcharts Highmaps 现在 我想使用在我的机器上重现一些演示示例角6 但我无法让它发挥作用 官方的 JS 示例在这里 https www highcharts com maps demo map drilldo
  • 如何按顺序使用 RxJS 可观察量?

    事情是这样的 我有一个 HTTP get 请求 它返回一个 JSON 对象列表 我使用 RxJS 订阅接收该列表的数据 现在 对于该列表中的每个对象 我想执行另一个 HTTP 请求 然后将该请求的结果放入数组中 到目前为止 我已经能够做到这
  • 将打字稿中的字符串转换为时间格式

    我必须将服务器数据转换为字符串格式13 47 to 01 47PM但我正在尝试 time date hh MM and task time date shortTime 但它显示日期管道错误和参数错误 运行时错误 InvalidPipeAr
  • Angular 2:ngModel 输入上“数字”管道的光标问题

    我有一个输入 我想像货币一样显示 我希望只允许两位小数 并且只允许数字 同时在必要时自动添加逗号 基本上 如果用户输入 12345 我希望输入自动显示为 12 345 00 12 345 也可以接受 但如果他们输入 12345 5 则需要显
  • Angular 7 向原语添加扩展方法

    我想向原语添加一些方法 我有以下文件 字符串扩展 ts interface String isNullOrEmpty this string boolean String prototype isNullOrEmpty function t

随机推荐