0

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

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

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

它说

无法读取未定义的属性“sideDrawer”

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

4

1 回答 1

1

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

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

<RadSideDrawer #myDrawer>

文件.component.ts

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

可以在这里找到测试项目(查看app/home/home.component.ts

于 2017-03-02T09:55:27.517 回答