2017-04-11 9 views
1

ナビゲーションドロワを実装する方法を学んでいるので、私はnativescriptを初めて使用しています。RadSideDrawerが動作しないNativescript angular 2

register.html

<ActionBar title="Custom Title"> 

     <ActionItem ios.systemIcon="9" android.systemIcon="ic_menu_share_holo_light" (tap)="openDrawer()"></ActionItem> 
    </ActionBar> 
<RadSideDrawer #drawer> 
     <template drawerSide> 
      <StackLayout class="p bgc-white"> 
       <ListView row="1"> 
        <template let-item="item" let-i="index"> 
         <StackLayout> 
          <Label text="WWW" class="page-name" ></Label> 
         </StackLayout> 
        </template> 
       </ListView> 
      </StackLayout> 
     </template> 
     <template drawerMain> 
      <StackLayout class="m"> 
       <user-list></user-list> 
      </StackLayout> 
    </template> 
</RadSideDrawer> 

register.component.ts

import { Component,OnInit,ViewChild,ChangeDetectorRef } from "@angular/core"; 
import {RadSideDrawerComponent, SideDrawerType} from 'nativescript-telerik-ui/sidedrawer/angular'; 

@Component({ 
    selector: "register", 
    templateUrl :"./pages/register/register.html" 
}) 

export class RegisterComponent 
{ 
    @ViewChild(RadSideDrawerComponent) public drawerComponent: RadSideDrawerComponent; 
    private drawer: SideDrawerType; 
    constructor (private _changeDetectionRef: ChangeDetectorRef) { 

    } 

    ngAfterViewInit() { 
     console.log(" FFFFF"); 
     this.drawer = this.drawerComponent.sideDrawer; 

     this._changeDetectionRef.detectChanges(); 
    } 
    public openDrawer() 
    { 
     this.drawer.toggleDrawerState(); 
    } 
} 

次は私が取得していますログです

promiseReactionJobの@ [ネイティブコード] CONSOLE ERRORファイル:///app/tns_modules/@angular/core/bundles/core.umd.js:3481:36:エラーコンテキスト:

コンソールエラーファイル:/// app/tns_modules/@ angular/core /bundles/core.umd.js:3482:36:[オブジェクトオブジェクト]

コンソールエラーファイル:///app/tns_modules/nativescript-angular/zone-js/dist/zone-nativescript.js:344: 22:Error:0:0のエラーは:未定義がオブジェクトではない( 'this.drawerComponent.sideDrawer'を評価する)

+1

import { NativeScriptUISideDrawerModule } from 'nativescript-telerik-ui/sidedrawer/angular'; @NgModule({ bootstrap: [ AppComponent ], imports: [ CoreModule, NativeScriptModule, PagesModule, NativeScriptUISideDrawerModule // RIGHT HERE ], }) export class AppModule { } 

これは入門ドキュメントに概説されています:このような

何か。それはあなたの問題に関連しているわけではありませんが、あなたのIDEを助けるために、クラスに 'AfterViewInit'を実装させることができます。 –

答えて

関連する問題