Я использую ионный шаблон 2 стартера с sidemenu.ionic 2 sidemenu - navCtrl внутри компонента
Так оригинальный app.html выглядит следующим образом
<ion-menu [content]="content">
<ion-toolbar>
<ion-title>Menu</ion-title>
</ion-toolbar>
<ion-content>
<ion-list>
<button menuClose ion-item *ngFor="let p of pages" (click)="openPage(p)">
{{p.title}}
</button>
</ion-list>
</ion-content>
</ion-menu>
<ion-nav [root]="rootPage" #content swipeBackEnabled="false"></ion-nav>
, и я хочу, чтобы заменить содержимое меню с компонентом, как это
<ion-menu [content]="content">
<st-menu></st-menu>
</ion-menu>
моего menu.component.ts выглядит так, которая в основном скопированы с оригинала app.ts файл
import {Page1} from "../pages/page1/page1";
import {Page2} from "../pages/page2/page2";
import {Nav, NavController} from "ionic-angular";
@Component({
selector: 'st-menu',
templateUrl: 'build/menu/menu.html'
})
export class MenuCmp {
@ViewChild(Nav) nav: Nav;
pages: Array<{title: string, component: any}>;
constructor(private navCtrl:NavController) {
this.pages = [
{ title: 'Home', component: HomePage },
{ title: 'Page uno', component: Page1 },
{ title: 'Page dos', component: Page2 }
];
}
openPage(page) {
this.nav.setRoot(page.component);
}
}
и menu.html как это
<ion-toolbar>
<ion-title>Menu</ion-title>
</ion-toolbar>
<ion-list>
<button menuClose ion-item *ngFor="let p of pages" (click)="openPage(p)">
{{p.title}}
</button>
</ion-list>
Теперь, когда я нажимаю в меню я получаю сообщение об ошибке:
Не удается прочитать свойство «setRoot» неопределенной
Я проверил, заменив this.nav. setRoot (page.component) с this.nav.setRoot (HomePage); и он все тот же. Когда я заменяю нав с navCtrl (при условии, и впрыскивается) он говорит this.navCtrl.setRoot не является функцией
Любые предложения? Благодаря!
спасибо, что решили! –