2017-12-15 8 views
0

Angular 5アプリケーションに別のコンポーネントをラップするコンポーネントがあり、ラップコンポーネントのコンストラクタで継承されたコンポーネントへの参照。このように:私のwrapper-componentAngular 2+でtransclusionを使用する場合のコンポーネントのクラス/コンストラクタへの取得

<wrapper-component> 
    <wrapped-component></wrapped-component> 
</wrapped-component> 

私はwrapped-componentへの参照を取得したいと思います。実は、私は必要なのは、このようなコンストラクタへの参照、次のとおりです。

@Component({ 
    selector: 'wrapper-component' 
    // ... 
)} 
export class WrapperComponent { 
    getWrappedComponent( 
     // can this be done? 
    ) 
} 

私はwrapper-componentへの入力のようにwrapped-componentを渡すことでこれを行う方法を考えることができますが、私はむしろので、これをしないと思いますこのようにラップされたいくつかのコンポーネントがあります。ラップされたコンポーネントの定型文をすべて持っているわけではありません。

アイデア?

+0

'wrapped-component'コンポーネントのインスタンスへの参照が必要ですか? –

答えて

1

私が問題をよく理解していれば、@ContentChildデコレータを探していると思います。 @ContentChildを使用すると、コンポーネント(この場合はWrapperComponent)内に投影されたコンテンツのインスタンスを取得できます。 (例に示すようにWrappedComponent refはngAfterContentInitライフフックで利用できるようになりますことを覚えておいてください)

@Component({ 
selector: 'wrapper-component' 
// ... 
)} 
export class WrapperComponent { 
    @ContentChild(WrappedComponent) wrappedComponent: WrappedComponent 
    ngAfterContentInit() { 
      // use wrapped component 
      this.wrappedComponent. // whatever 
    } 
} 

・ホープ、このことができます: あなたはこのようにそれを使用することができます。

関連する問題