雖然咱們能夠經過使用 ViewContainerRef 將 ElementRef建立的視圖插入指定的位置,可是仍然但願有某中快捷的方式幫咱們實現。spa
ngTemplateOutlet與ngComponentOutlet 就是幫咱們幹這事的。code
ngTemplateOutlet對象
插入 ng-template 建立的內嵌視圖。
blog
最簡單的例子以下:ci
<div *ngTemplateOutlet="tpl1"></div> <ng-template #tpl1> <span>I am span in template {{title}}</span> </ng-template>
按照官方文檔,其語法知識以下: *ngTemplateOutlet = "templateRefExp; content: contentExp "文檔
templateRefExp: ng-template 元素的#IDit
contextExp:class
一、可空參數; 語法
二、能夠在模版中使用 let-key 語句進行綁定; 這個key,是咱們在HTML模版綁定顯示的key,即 {{key}} 。im
三、使用 $implicit 這個key會把對應的值設置爲默認值;
由於咱們會爲content指定一個對象,每一個對象可能有一個或多個值;
若是這個對象,是一個值,則不需顯示指定名稱,如 student : { name: 'jack' } ,能夠用 student: { $implicit: 'jack' };
在 ng-template 中也沒必要使用 let-showName = "name", 只須要 let-showName 便可。
以下例子:
HTML文件:
<ng-container *ngTemplateOutlet="tplStu; context: student"></ng-container> <ng-template #tplStu let-name let-ageHTML="age">hello {{name}},your age is {{ageHTML}}</ng-template> .ts文件 student = { $implicit: 'jack' , age: '19'};