我使用loadDynamicTemplate(template_url)创建了一个包含AppComponent的项目,如下所示:
import { Component } from '@angular/core';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
title = 'app works!';
}
和app.component.html作为
Good Morning, {{title}}
因此,当我使用loadDynamicTemplate(template_url)构建它时,它会生成一些类似./dist/main.bundle.js的文件,其内容如下:
/* 586 */
/***/ function(module, exports) {
module.exports = "
\n Good Morning, {{title}}\n
\n"/***/ },
/* 587 */
这意味着,在构建时,编译器/捆绑程序正在读取html文件并将其串联到生成的js文件中。
但就我而言,html还是动态的,并且是从服务器端驱动的内容。 可以说,我的模板文件是app.component.jsp,而不是html,并且完全位于其他服务器或文件夹中。
另外,该JSP文件有时会返回loadDynamicTemplate(template_url)有时是
Good Afternoon, {{title}}
,具体取决于当前服务器时间。如何实现此功能?
我了解的是,我需要定义某种加载器函数,例如:loadDynamicTemplate(template_url)
并且需要在Component装饰器模板属性上使用该加载器功能。 在这种情况下,当生成main.bundle.JS时,它也会使用该函数。 因此,在运行时angular将调用此函数并通过ajax加载HTML并使用它。
更新1
在这里,我发现SystemJS和Webpack之间有一些区别。 我还发现,如果可以使用SystemJS,则可以在运行时加载HTML文件。 因此,我相信可以通过SystemJS配置解决此问题。 但这又引起了另一个问题,尽管我认为这可能是一个单独的问题。 因此,我在这里发布了一个新问题以对其进行梳理。
如果该问题解决了,我将尝试使用SystemJS,然后在有帮助的情况下在此处发布解决方案。