詳解Angular組件之投影
概述
運行時動態(tài)改變組件模版的內(nèi)容。沒路由那么復(fù)雜,只是一段html,沒有業(yè)務(wù)邏輯。
ngContent指令將父組件模版上的任意片段投影到子組件上。
一、簡單例子
1、子組件中使用<ng-content>指令來標(biāo)記投影點
<div class="wrapper"> <h2>我是子組件</h2> <div>這個div定義在子組件中</div> <ng-content></ng-content> </div>
2、父組件中把要投影到子組件的投影點的html片段寫到子組件的標(biāo)簽中
<div class="wrapper">
<h2>我是父組件</h2>
<div>這個div定義在父組件中</div>
<app-child2>
<div>這個div是父組件投影到子組件中</div>
</app-child2>
</div>
效果:

子組件加樣式:
.wrapper{
background: lightgreen;
}
父組件加樣式:
.wrapper{
background: cyan;
}

二、多個<ng-content>投影點
子組件:
<div class="wrapper"> <h2>我是子組件</h2> <ng-content selecter=".header"></ng-content> <div>這個div定義在子組件中</div> <ng-content selecter=".footer"></ng-content> </div>
父組件:
<div class="wrapper">
<h2>我是父組件</h2>
<div>這個div定義在父組件中</div>
<app-child2>
<div class="header">這是頁頭,這個div是父組件投影到子組件中,title是{{title}}</div>
<div class="footer">這是頁腳,這個div是父組件投影到子組件中</div>
</app-child2>
</div>

頁頭和頁腳被投影到子組件中,同時title也被投影過去。
父組件模版中投影內(nèi)容中插值表達式只能綁定父組件中的屬性,雖然內(nèi)容會被投影到子組件中去。
三、Angular屬性綁定的方式插入html
在父組件模版中加一行:
<div [innerHTML]="divContent"></div>
父組件中加一個divContent屬性,內(nèi)容就是一段html片段。
divContent="<div>屬性綁定綁innerHTML</div>";
效果

四、對比ngContent指令和屬性綁定innerHTML方式
[innerHTML]是瀏覽器特定的API。
ngContent指令平臺無關(guān)。可綁定多個投影點。
優(yōu)先考慮ngContent指令
以上就是詳解Angular組件之投影的詳細內(nèi)容,更多關(guān)于Angular組件之投影的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
詳解如何使用webpack+es6開發(fā)angular1.x
本篇文章主要介紹了詳解如何使用webpack+es6開發(fā)angular1.x,具有一定的參考價值,有興趣的可以了解一下2017-08-08
詳解angular分頁插件tm.pagination二次觸發(fā)問題解決方案
這篇文章主要介紹了詳解angular分頁插件tm.pagination二次觸發(fā)問題解決方案,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-07-07
AngularJS實現(xiàn)根據(jù)變量改變動態(tài)加載模板的方法
這篇文章主要介紹了AngularJS實現(xiàn)根據(jù)變量改變動態(tài)加載模板的方法,結(jié)合實例形式簡單分析了AngularJS動態(tài)加載模板的主要操作技巧與模板實現(xiàn)代碼,需要的朋友可以參考下2016-11-11
AngularJS 路由和模板實例及路由地址簡化方法(必看)
下面小編就為大家?guī)硪黄狝ngularJS 路由和模板實例及路由地址簡化方法(必看)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-06-06

