2017-03-01 25 views
0

RadSideDrawer(サイドメニュー)にnativescript-ui-samples-angularレポのコードを使用しました。それは完璧に動作しますが、別のコンポーネントですべてをラップしようとすると、セレクタを介して他のコンポーネントに追加されます。一般的なサイドメニューコンポーネント

@ViewChild(RadSideDrawerComponent) public drawerComponent: RadSideDrawerComponent; 
private drawer: SideDrawerType; 

ngAfterViewInit() { 
    this.drawer = this.drawerComponent.sideDrawer; 
    this._changeDetectionRef.detectChanges(); 
} 

それは

プロパティを読み取ることができませんと言う 'sideDrawer' 未定義

、私は何かが足りないのですか?問題はサイドメニュー自体にはなく、再利用可能なコンポーネントにラップすることです。別にあなたも(自分の引き出しのためのユニークなIDを作成アンギュラIDを使用して

file.component.htmlを次のようにあなたの@ViewChildディレクティブに渡すことができRadSideDrawerComponent経由で参照を取得してのアプローチから

+0

ない特定のを見つけることができます

@ViewChild("myDrawer") public drawerComponent: RadSideDrawerComponent; 
が、私はネイサン・ウォーカーがShoutOutPlay(HTTPSでサイドの引き出しを使用思う:// github.com/NathanWalker/ShoutOutPlay/tree/development/app)は、掘り下げてアプリのさまざまなセクションで再利用しているかどうかを調べるかもしれません。 –

答えて

1

<RadSideDrawer #myDrawer> 

file.component.ts

テストプロジェクトはhereアプリ/ホーム/ home.component.tsに見える)

+0

私はまだRadSideDrawer(RadSideDrawer自体の中にページの内容がラップされていない)を使用する従来の方法を使用しようとしていました。だから私のアプローチには欠陥があった。あなたのヒントで私はリファレンスを取得することができましたが、私はコンポーネント自体を使用する方法を再考する必要がありました。答えを受け入れる。 – Zoidy