在Angular2中动态加载HTML模板

2024-02-24

我使用创建了一个项目angular-cli其中包含应用组件如下:

import { Component } from '@angular/core';
@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app works!';
}

And 应用程序组件.html as

<h1>
  Good Morning, {{title}}
</h1>

所以当我用它构建它时ng build它会生成一些像这样的文件./dist/main.bundle.js其中包含一些代码如下-

/* 586 */
/***/ function(module, exports) {

module.exports = "<h1>\n  Good Morning, {{title}}\n</h1>\n"

/***/ },
/* 587 */

这意味着,在构建时,编译器/bundle-er 正在读取 html 文件并将它们连接到生成的 js 文件中。

但就我而言,html 也是dynamic以及服务器端的内容驱动。可以说,我的模板文件不是 html,而是应用程序组件.jsp并完全驻留在某个不同的服务器或文件夹上。

该 JSP 文件有时也会返回<h1>Good Morning, {{title}}</h1>有时<h1>Good Afternoon, {{title}}</h1>取决于当前服务器时间。

如何实现这个功能呢?

我的理解是,我需要定义某种加载器函数:loadDynamicTemplate(template_url)

并且需要在组件装饰器模板属性上使用该加载器函数。在这种情况下,当生成 main.bundle.JS 时,它也会使用该函数。所以在运行时,Angular将调用这个函数并通过ajax加载HTML并使用它。

Update 1

Here https://stackoverflow.com/questions/38263406/what-are-differences-between-systemjs-and-webpack我发现 SystemJS 和 Webpack 之间存在一些差异。我还发现,如果我们可以使用 SystemJS,我们就可以在运行时加载 HTML 文件。所以我相信这个问题可以通过SystemJS配置来解决。但为此另一个问题开始发挥作用,尽管我认为这可能是一个单独的问题。所以我发布了一个新问题来解决这个问题here https://stackoverflow.com/questions/42417832/configure-angular-cli-to-use-systemjs.

如果这个问题得到解决,我可能会尝试使用 SystemJS,然后在此处发布解决方案(如果有帮助的话)。


您可以在my-template具有类似这样的组件(我没有测试):

@Component({
    selector: 'my-template',
    template: `
<div [innerHtml]="myTemplate">
</div>
`})
export public class MyTemplate {
    private myTemplate: any = "";
    @Input() url: string;
    constructor(http: Http) {
        http.get("/path-to-your-jsp").map((html:any) => this.myTemplate = html);
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Angular2中动态加载HTML模板 的相关文章

随机推荐

  • 字形和文本之间的间距?

    我正在尝试添加字形图标作为电子邮件地址链接的一部分 图标显示 但图标和电子邮件地址文本之间没有间距 我希望超链接包含图标和文本 包括空格 实现这一目标的最佳方法是什么 a href title Some Email span class g
  • terraform 和 aurora postgresql 的存储类型错误

    我目前正在借助 Terraform 在 AWS 中部署 Aurora postgres 实例 这里是我的报关表 resource aws db instance postgreDatabase name validName storage
  • 以编程方式将类序列化为 xsd

    有没有办法以编程方式从 C NET 类创建 XSD 我想将对象序列化为带有类型信息的 xsd 或 xml 是的 看着XsdDataContractExporter MSDN 有一个完整的例子在这里 http msdn microsoft c
  • SocketOutputStream的线程安全

    我知道 java 套接字的线程安全性已经在 stackoverflow 上的几个线程中进行了讨论 但我一直无法找到这个问题的明确答案 实际上 让多个线程同时写入同一个线程是否安全SocketOutputStream 或者是否存在从一个线程发
  • NavigationLink 内的 SwiftUI 按钮

    我有一个列表项的视图 它显示有关嵌入到 navigationLink 中的任务的一些基本信息 我想使用 navigationLink 中的按钮进行切换task isComplete没有进行任何导航 到目前为止 这是我的代码 var body
  • django-admin.py:找不到命令

    我在 usr local bin 中有 django admin py 并且我已经尝试了网络上提供的所有帮助来创建符号链接 但它仍然显示 django admin py command not find 我正在尝试在 django 中启动我
  • 如何获取从Powershell启动的Explorer的进程ID

    我从Powershell启动 Explorer exe 想要获取资源管理器窗口的进程ID 这样我就不会在其他资源管理器窗口上误操作 代码 启动进程 Explorer exe PassThru 结果 我可以看到进程ID 但它与UISpy或任务
  • 在 .NET 4.5.2 控制台应用程序中使用 .NET Core 库

    我有两个项目 一个项目基于 NET Core 构建 另一个项目基于普通 NET Framework 4 5 2 构建 我想知道如何在 NET 控制台应用程序中使用 NET Core cass 库 这是我的project json versi
  • 在 Chrome 上使用 Jquery 检测 Shift + 单击

    我正在尝试使用 javascript 检测 Shift 点击 但由于某种原因它只适用于 IE click function e if e shiftKey Rain 这是在 IE 中适用的代码 我如何在 Chrome 上检测到它 我不认为有
  • 如何在初始化后设置jqueryui datepicker minDate?

    我有两个日期选择器 jquery ui 我想将第二个输入 minDate 属性 限制为第一个输入中选择的值 我该怎么做 我写了下面的代码 没有成功 picker1 button click function var minDate pick
  • Spark Apache 中的 Worker 无法连接到 master

    我正在使用独立集群管理器部署 Spark Apache 应用程序 我的架构使用 2 台 Windows 机器 一组作为主机 另一组作为从机 工作程序 Master on which I run bin gt spark class org
  • Java 中 DirectX 程序的全屏捕获(Javacv?)

    对于Windows 我知道可以捕获在 C 语言下运行的 DirectX 程序的屏幕 但是您知道 Java 的一些示例代码吗 我实际上面临着同样的问题使用java在全屏应用程序中截取屏幕截图 https stackoverflow com q
  • 突出显示工作表中的第二个实例重复项

    尝试在谷歌表格上标记重复项 但我看到当我使用时 第一个实例被突出显示 COUNTIF A1 A100 A1 gt 1 我尝试同时使用 IF 和 COUNTIF 以便突出显示第二个实例 IF COUNTIF A1 A97 A1 gt 1 Du
  • nginx keepalive 和 dns 解析器

    我在 AWS 中有一个 nginx 实例 它具有上游应用程序层 对nginx有两个要求 活着 使用解析器动态解析上游 我能够使它们中的任何一个工作 这是使 keepalive 工作的配置 upstream backend server ap
  • localStorage 无法在 google chrome 上运行

    我正在使用浏览器localStorage存储一个值 但是在使用谷歌浏览器时 当我们使用以下命令刷新页面时window location reload localStorage value被冲了 例如 localStorage value1
  • MongoDB 副本集成员状态为“OTHER”

    三个成员 主要和次要 第三个成员是 其他 我找不到有关该状态的任何信息 不知道该怎么做 我已经重新启动了实例 但它总是出现相同的情况 找不到有关该状态的文档 我是复制集的新手 任何帮助将不胜感激 配置设置不正确 您可以使用以下命令来初始化
  • 在 Python 中压缩并使用解压缩 C# 解压缩的最简单方法(反之亦然)

    我有一个带有基于 Mono 的 C 客户端和 Python 服务器的程序 它们通过 TCP IP 套接字进行通信 这些消息主要使用二进制格式 但每条消息的最大部分通常是嵌入的 UTF 8 字符串 英文 每条消息通常都很短 小于 100 字节
  • 将数据框(或其他 R 对象)连接到只读 Postgresql 数据库中的表?

    我对 Postgres 数据库具有只读访问权限 我无法写入数据库 问 有没有办法构建和运行 SQL 查询 将数据框 或其他 R 对象 连接到只读 Postgres 数据库中的表 这是为了从 WRDS 访问数据 https wrds www
  • UIGestureRecognizer oneFingerForcePress:在 iOS 11 上崩溃

    我们刚刚收到有关 iPhone 设备 iOS 11 的一些奇怪的崩溃反馈 这里有一个信息 UIKit UIKeyBoardBasedNonEditableTextSelectionGestureCluster oneFingerForceP
  • 在Angular2中动态加载HTML模板

    我使用创建了一个项目angular cli其中包含应用组件如下 import Component from angular core Component selector app root templateUrl app component