2014-10-10 142 views
2

有沒有辦法等待組件初始化?角度飛鏢組件init

@Component(
    selector: "my-component", 
    templateUrl: 'component/my.html', 
    useShadowDom: false, 
    publishAs: "ctrl" 
) 
class MyComponent { 

    @NgAttr('foo') 
    String foo; 
    } 

    @NgAttr('bar') 
    String bar; 
    } 

    MyComponent(){ 
    print(foo); 
    print(bar); 
    } 
} 

用法:

<my-component foo="bar" bar="baz"></my-component> 

當我使用的組件這樣,構造打印:NULL,NULL

我可以寫foo的二傳手和酒吧,檢查每一個如果它們都設置了,則設置。但如果沒有提供任何價值,我的init永遠不會被解僱。

我必須實現一個接口,它提供了一個init方法或什麼?

回答

2

正如Günter所說,要麼實現AttacheAware,要麼! ShadowRootAware。 onShadowRoot在onAttachAware之後。它給你的參數(ShadowRoot)是你的自定義元素。該名稱具有誤導性 - 如果useShadowDom爲false,則該名稱也有效。