2014-07-03 93 views
0

我想等到我的組件完全加載。目前的做法是實施ShadowRootAware界面。然而,這並不工作,如果組件禁止使用影子DOM的:等待dom準備好不使用ShadowDom

@Component(
    selector: 'travel-step', 
    templateUrl: 'packages/TravelPlanner/travelstep/travel_step_component.html', 
    useShadowDom: false, 
    publishAs: 'cmp') 
class TravelStepComponent extends AttachAware{ 

我需要禁用ShadowDom的用法,因爲我想用風格從我的父對象(例如引導)。有沒有另一種方法來等待dom準備好?

我想引用文件上傳輸入。目前(角度v.012)似乎沒有其他方式來上傳文件。

+0

的可能重複[?組件加載時如何知道(http://stackoverflow.com/questions/ 24470496 /如何知道組件何時加載) –

回答

0

您可以實現ShadowRootAware接口。例如:

class NgFreeTree implements ShadowRootAware { 
    void onShadowRoot(ShadowRoot shadowRoot) { ... } 
} 

應該不管useShadowDom屬性的工作。

+0

我將得到錯誤類型'HtmlElement'不是'shadowRoot'類型'ShadowRoot'的子類型。 – Daniel

+0

上面的錯誤是飛鏢編輯器啓動應用程序的錯誤。我們也開始看到這一點,我們正在努力與飛鏢/角色團隊合作,以確定錯誤存在的位置。 如果您在飛鏢編輯器外(從命令行)運行'pub serve',則此答案是正確的,並且onShadowRoot可以正常工作。 –

+0

我認爲這可能是導致問題的類型檢查。當您運行pub服務時,我相信,類型檢查未啓用。如果你從Dart Editor運行,默認啓用類型檢查(我相信) – markovuksanovic

-1

,如果您使用以下簽名它不會給你的錯誤信息:

void onShadowRoot(Node n) { 
    HtmlElement element = n; 
    ... 
}