2014-02-06 50 views
2

我一直在試圖創建一個組件用於說明目的,它可以在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編譯,所以不是h1ng-if它會顯示<!-- ANCHOR:... -->這是行不通的。

我試圖通過閱讀AngularDart來源找到一個解決方案,但是我可以找到任何解決方案,所以我最終修補了AngularDart以將模板克隆附加到它插入的每個錨點,以便稍後我可以提取它並重新拼接。可以看到一個demo

我不知道是否有沒有補丁AngularDart乾淨的解決方案。

+0

我能夠使用你的例子,因爲它只是一個簡單的文本innerhtml獲取。 – curt

+0

@curt是的它適用於簡單的東西,不適用於複雜的事情。自那以後我沒有重新討論過這個問題。也許在Angular2中有一個明確的解決方案。 –

回答

相關問題