【问题标题】:Dynamic template HTML for Angular 2 componentAngular 2 组件的动态模板 HTML
【发布时间】:2017-10-18 16:15:57
【问题描述】:

我想动态确定 Angular 2 组件的 HTML 模板。那可能吗?我们如何在 Angular 中实现这个功能?

我的目标是拥有相同的代码库/组件,但基于服务器的某些配置/URL 的 HTML 不同?这可能吗?

【问题讨论】:

  • 你在使用AOT编译吗?这会使事情复杂化。否则,如果您使用 SystemJS 或其他东西,您可能只需将变量传递给 @Component({ templateUrl: `${config.serverUrl}/someView.html` }) 装饰器。

标签: angular angular2-template angular2-template-loader


【解决方案1】:

如果可能的话,我建议尝试其他方法来完成您正在尝试做的事情。在我当前的项目中,我最初是通过使用 compileModuleAndAllComponentsAsync 来构建一个模块、一个组件,然后在运行时编译并将该模块添加到项目中,然后他们使用 ViewRef 手动将其注入到屏幕上的当前组件中。

(更多信息可以在here找到)

但是,这真的很快就会失控。

这也使我们无法使用 webpack,因为 webpack 无法在编译时知道需要哪些模板并将它们全部关联到一个组件。这使我们无法使用糟糕的 Angular CLI。

我建议尝试找到一种方法来通过路由来做到这一点,并路由到不同的组件。这确实意味着您需要为您拥有的每个可能的模板提供一个组件。

您还可以查看dynamic component loader,因为这是 Angular 2 支持的功能。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-01-04
    • 2019-12-27
    • 1970-01-01
    • 2016-04-29
    • 2017-04-30
    • 2016-04-23
    • 1970-01-01
    相关资源
    最近更新 更多