[英]Using Angular's ng-bind-html with default HTML
我正在編寫一個網站,為使用Angular增添了迷人的體驗。 該網站可以在沒有JS的情況下運行,但對於不錯的瀏覽器,內容將以HTML代碼段的形式(無前端模板語言)動態注入。
我有一個代表頁面內容的塊,最初應該包含服務器中的html內容,然后用Ajax函數中的HTML代碼段替換。
我希望將ng-bind-html
與默認內容一起使用,但是,一旦Angular Bootstraps將此元素清空,並替換為ng-bind-html
綁定到的pageContent
變量的內容(如預期的那樣)。
有什么方法可以阻止ng-bind-html
刪除默認內容,直到在控制器中更新變量為止?
另一個選擇是在引導Angular之前收集元素的內容,但是我認為這不是一個非常優雅的解決方案。
我頁面上的一些示例代碼:
<div id="content" ng-bind-html="pageContent">
<h2>Home page</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
理想的情況是在HTML內容#content
股利仍將在頁面上,直到我更新$scope.pageContent
變量。 有任何想法嗎?
我認為您想要執行的操作應如下:
<div ng-if="pageContent" id="content" ng-bind-html="pageContent"></div>
<div ng-if="!pageContent">
<h2>Home page</h2>
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit.
</div>
</div>
或使用ngSwitch
我認為您應該能夠設置顯示:元素上沒有顯示,並在pageContent
可用時將其刪除!
編寫自定義指令以擴展ng-bind-html
並添加一些其他功能可以解決此問題...
這是我為使用ng-bind-html-unsafe
創建的PLUNKER ,現在我對其進行編輯,以等待更改屬性以將html字符串替換為先前的內容...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.