通用侧边菜单组件

generic side-menu component

我为 RadSideDrawer(侧面菜单)使用了 nativescript-ui-samples-angular 存储库中的代码。它工作得很好,但是当我尝试将它全部包装在一个单独的组件中,然后我通过选择器将其添加到其他组件时,它变得平淡无奇。

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

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

它说

Cannot read property 'sideDrawer' of undefined

我错过了什么吗?问题不在于侧面菜单本身,而是将其包装到可重用组件中。

除了通过 RadSideDrawerComponent 获取引用的方法之外,您还可以使用 Angular id 并将其传递给您的 @ViewChild 指令,如下所示

file.component.html(为您的抽屉创建唯一 ID)

<RadSideDrawer #myDrawer>

file.component.ts

@ViewChild("myDrawer") public drawerComponent: RadSideDrawerComponent;

可以找到测试项目here(在app/home/home.component.ts中查找)