首页 > 解决方案 > 如何在不使用 JavaScript 中的输入类型文件的情况下读取包含 html 的文本文件?

问题描述

我在资产文件夹中有一个文本文件,其中包含一些要在特定组件的 div 中呈现的 html。

有没有一种方法可以读取该文件并将内容分配给字符串变量,而无需用户与 ngOnInit 中的视图(具有输入文件类型)进行交互。

我的发现 如果我将 html 内容放在 json 对象中,我们将不得不从中删除所有换行符。这意味着它将是一个没有像这样的换行符的字符串。

{
  "html": "<h1 class=\"user\">Name</h1><p>Ahsan</p>"
}

这对设计人员有限制,他们会将 html 转换为多行字符串,我们还将删除转义序列。

如何通过文本文件实现这一点。

这样做的理由

我想这样做是因为,我想避免为某些内容更改而重建和发布整个 Angular 应用程序。即使对于某些内容更改,我也必须重新构建并重新发布应用程序。

标签: javascriptjsonangular

解决方案


问题很模糊,所以我只列出一些可供研究的选项:

1)首先,如果这是一个浏览器页面,您可以在服务器上提供html页面并从客户端请求它。

2) 或者,您可以有一个构建步骤,用 HTML 文件的内容替换一些变量值。这样就避免了方案(1)的HTTP请求。

3)另一方面,如果这是一个节点(或电子)应用程序,除了解决方案(2),您还可以使用节点fs访问HTML文件。

4) 最后,也许是最简单但最不实用的解决方案,将 HTML 放入 JS 对象中。与 JSON 不同,JS 对象可以支持换行;例如

let x = {
    str: `line 1
          line 2`
};

尽管即使您想使用 JSON 文件,您也可以\n在字符串中包含转义的新留置权。


推荐阅读