我使用ionic start myApp sidemenu
创建了ionic 4应用程序。
现在,我只希望将侧面菜单作为组件。
所以我创建了:
/src/app/menu/menu.component.ts
:@Component({
selector: 'app-menu',
templateUrl: './menu.component.html',
})
export class MenuComponent implements OnInit {
// [...] code copied from original generated app.component.ts
}
/src/app/menu/menu.component.html
,其中包含原始生成的app.component.html
中的代码,/src/app/menu/menu.module.ts
:@NgModule({
imports: [
CommonModule,
IonicModule,
RouterModule
],
declarations: [MenuComponent],
exports: [MenuComponent]
})
export class MenuComponentModule {}
/src/app/app.module.ts
:@NgModule({
declarations: [AppComponent],
entryComponents: [MenuComponent],
imports: [
BrowserModule,
IonicModule.forRoot(),
AppRoutingModule,
MenuComponentModule
],
// [...] providers & bootstrap identicall as original
})
export class AppModule {}
/src/app/app.component.html
修改为以下文件:<ion-app>
<ion-split-pane>
<ion-menu>
<app-menu></app-menu>
</ion-menu>
<ion-router-outlet main></ion-router-outlet>
</ion-split-pane>
</ion-app>
但是随后什么也没显示,我在控制台中出现此错误,我不知道为什么:
Error: Template parse errors:
'app-menu' is not a known element:
1. If 'app-menu' is an Angular component, then verify that it is part of this module.
2. If 'app-menu' is a Web Component then add 'CUSTOM_ELEMENTS_SCHEMA' to the '@NgModule.schemas' of this component to suppress this message. ("
<ion-split-pane>
<ion-menu>
[ERROR ->]<app-menu></app-menu>
</ion-menu>
<ion-router-outlet main></ion-router-outlet>
"): ng:///AppModule/AppComponent.html@3:6
答案 0 :(得分:0)
据我所知,您的代码没有任何问题,但是我有一个建议,直接在 app.module.ts 中声明 MenuComponent 。也许有帮助
答案 1 :(得分:0)
请像这样将contentId和id添加到您的元素中:
<ion-app>
<ion-split-pane contentId="menu-content">
<ion-menu contentId="menu-content" side="end">
<app-menu></app-menu>
</ion-menu>
<ion-router-outlet id="menu-content"></ion-router-outlet>
</ion-split-pane>
</ion-app>
这是菜单组件:
<ion-header>
<ion-toolbar>
<ion-title>Menu</ion-title>
</ion-toolbar>
</ion-header>
<ion-content>
<ion-list>
<ion-menu-toggle auto-hide="false">
<ion-item>Menu Item</ion-item>
</ion-menu-toggle>
</ion-list>
</ion-content>
并在所需页面上添加菜单:
....
<ion-buttons slot="end">
<ion-menu-button></ion-menu-button>
</ion-buttons>
....
希望这会有所帮助