我一直在試圖創建一個組件用於說明目的,它可以在AngularDart本身處理它之前顯示它自己的內部HTML標記,例如,如果我寫創建可以顯示內部HTML的AngularDart組件
<view-source>
<h1 ng-if="foo == 1">{{bar}}</h1>
</view-source>
我想要在正常呈現的h1
下顯示實際標記。我嘗試下面的代碼:
@NgComponent(
selector: 'view-source',
templateUrl: 'view-source.html',
publishAs: 'self'
)
class ViewSource {
var template;
ViewSource(dom.Element element) : template = element.innerHtml;
}
<!-- view-source.html -->
<div>
<div class="rendered">
<content></content>
</div>
<div class="template">
{{self.template}}
</div>
</div>
這適用於簡單的情況,但如果裏面的東西<view-source>
通過transclusion編譯,所以不是h1
與ng-if
它會顯示<!-- ANCHOR:... -->
這是行不通的。
我試圖通過閱讀AngularDart來源找到一個解決方案,但是我可以找到任何解決方案,所以我最終修補了AngularDart以將模板克隆附加到它插入的每個錨點,以便稍後我可以提取它並重新拼接。可以看到一個demo。
我不知道是否有沒有補丁AngularDart乾淨的解決方案。
我能夠使用你的例子,因爲它只是一個簡單的文本innerhtml獲取。 – curt
@curt是的它適用於簡單的東西,不適用於複雜的事情。自那以後我沒有重新討論過這個問題。也許在Angular2中有一個明確的解決方案。 –