Hi all,
I’m new to Ionic and starting with Ionic 2, coming from Sencha Touch world.
My first attempt to build an Ionic 2 app is really amazing.
However, I’m facing a difficulty about components.
I want to share a common component accross many pages, with one parameter, but I can’t make it work.
What I need is building a simple navbar with one parameter : page title.
However, I can’t update the “pagetitle” parameter from each page where the navbar component is added.
Here is the code I tried:
Navbar component:
navBarStandard.html
<ion-navbar *navbar class="navBarStandard" colorNavBar>
<!-- Menu button --> <button menuToggle> <ion-icon name="menu"></ion-icon> </button> <ion-title>{{pageTitle}}</ion-title> <ion-buttons end> <button (click)="fnc()"> <ion-icon name="ios-list"></ion-icon> </button> </ion-buttons> </ion-navbar>
navBarStandard.ts
import { Component } from '@angular/core';
@Component({
selector: 'navBarStandard',
templateUrl: 'build/components/navBarStandard/navBarStandard.html'
})
export class NavBarStandard {
pageTitle: string;
constructor() {
this.pageTitle = "Title";
}
}
A page where I want to insert the navBarStandard component:
page.html
<navBarStandard></navBarStandard>
...
page.ts
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { NavBarStandard } from '../../components/navBarStandard/navBarStandard';
@Component({
templateUrl: 'build/pages/page/page.html',
directives: [ NavBarStandard ]
})
export class Page{
constructor(private nav: NavController) {
NavBarStandard.pageTitle = "Page title";
}
}
The problem is that in the navbar, “title” is always displayed, and I can not update it with “Page title” when “page” is opened.
What am I doing wrong?