angular动态选择HTML模板,在angular2中动态加载HTML模板
我創(chuàng)建了一個(gè)angular-cli包含AppComponent的項(xiàng)目,如下所示:
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}}
因此,當(dāng)我使用ng build它生成它時(shí)會(huì)生成一些像這樣的文件./dist/main.bundle.js,其中包含一些代碼,如下所示 -
/* 586 */
/***/ function(module, exports) {
module.exports = "
\n Good Morning, {{title}}\n
\n"/***/ },
/* 587 */
這意味著,在構(gòu)建時(shí),編譯器/ bundle-er正在讀取html文件并將它們連接到生成的js文件中.
但在我的情況下,html也是動(dòng)態(tài)的,內(nèi)容驅(qū)動(dòng)的是服務(wù)器端.可以說,我的模板文件不是html,而是app.component.jsp,并且完全駐留在一些不同的服務(wù)器或文件夾上.
此JSP文件有時(shí)會(huì)返回
Good Morning, {{title}}
,有時(shí)還
Good Afternoon, {{title}}
取決于當(dāng)前的服務(wù)器時(shí)間.如何實(shí)現(xiàn)這一功能?
我的理解是,我需要定義某種加載器函數(shù)說: loadDynamicTemplate(template_url)
并且需要在Component decorator模板屬性上使用該loader-function.在這種情況下,當(dāng)生成main.bundle.JS時(shí),它也將使用該函數(shù).因此在運(yùn)行時(shí),angular將調(diào)用此函數(shù)并通過ajax加載HTML并使用它.
更新1
在這里,我發(fā)現(xiàn)SystemJS和Webpack之間存在一些差異.我還發(fā)現(xiàn)如果我們可以使用SystemJS,我們可以在運(yùn)行時(shí)加載HTML文件.所以我相信這個(gè)問題可以通過SystemJS配置來解決.但是,為此,另一個(gè)問題開始發(fā)揮作用,盡管我認(rèn)為這可能是一個(gè)單獨(dú)的問題.所以我發(fā)布了一個(gè)新問題來解決這個(gè)問題.
可能如果這個(gè)問題得到解決,我會(huì)嘗試使用SystemJS,然后在這里發(fā)布解決方案,如果有幫助的話.
總結(jié)
以上是生活随笔為你收集整理的angular动态选择HTML模板,在angular2中动态加载HTML模板的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 框架生成的HTML修改,Django框架
- 下一篇: HTML5需要学html4吗,html5