从服务器插入带有Angular 2指令的HTML到DOM中。
从服务器插入带有Angular 2指令的HTML到DOM中。
我有大约2000行的HTML代码可以从我的Java服务器中检索出来。这个HTML代码中还包含了一些Angular指令,比如ngIf*
、(click)
和[ngClass]
。当我尝试在我的客户端中使用以下方法显示这个HTML时:
我发现所有的HTML元素都正确显示,但是其中的Angular指令都没有生效(比如一些HTML应该被*ngIf
隐藏,但实际上它们没有被隐藏...而且(click)
事件也不起作用)。我该怎么解决这个问题?
我需要这个功能,因为我将我的代码作为JAR文件交付给各个用户在他们的本地机器上运行,并且我想从亚马逊的S3中提供HTML代码,这样我可以随时更新它,给他们的网站进行更新。
我尝试过查看下面的答案,但那些答案只涉及纯HTML,没有任何Angular指令。
在使用Angular 2指令将HTML代码从服务器插入到DOM中时,会遇到以下问题:
无法直接使用innerHTML将Angular代码插入到DOM中,因为innerHTML只会将HTML代码插入到DOM中,而不会将Angular代码插入其中。实际上,Angular代码应该在预编译时被编译,这是一个将所有指令和HTML转换为简单JS的过程。
解决方法之一是使用Node.js进行服务器端渲染,将Angular代码转换为普通的HTML代码。
您可以了解更多关于服务器端渲染的信息:https://angular.io/guide/universal
另一种解决方法是使用Java,并使用任何流行的Java服务器模板框架,通过HTTP请求发送参数。