ナビゲーションドロワを実装する方法を学んでいるので、私は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'を評価する)
:
これは入門ドキュメントに概説されています:このような
何か。それはあなたの問題に関連しているわけではありませんが、あなたのIDEを助けるために、クラスに 'AfterViewInit'を実装させることができます。 –