NavCtrl push


I’m newbie in ionic 2 how to push navCtrl when the second page has multiple component.

Here’s my constructor code in second page:

constructor(public navCtrl: NavController, private contacts: Contacts) {

let contact: Contact = this.contacts.create(); = new ContactName(null, 'Smith', 'John');
contact.phoneNumbers = [new ContactField('mobile', '6471234567')];
  () => alert("save"),//console.log('Contact saved!', contact),
  (error: any) => console.error('Error saving contact.', error)


and here’s is my code in first page:
goToAddPerson() {

When I delete private contacts: Contacts in constructor on second page, the navCtrl.push work fine, but the problem is i cant use contacts component.

Thank you in advance .

You speak of “contacts component”, but the way you’re injecting Contacts makes it look more like a service. Which is it, and what does “can`t use” mean?

Hi rapropros,

Thank you for your response .This code not working when I remove contacts in constructor.

let contact: Contact = this.contacts.create(); = new ContactName(null, ‘Smith’, ‘John’);
contact.phoneNumbers = [new ContactField(‘mobile’, ‘6471234567’)];
() => alert(“save”),//console.log(‘Contact saved!’, contact),
(error: any) => console.error(‘Error saving contact.’, error)

Apologies if I’m explaining things you already know.

When you provide access control qualifiers (private/public) on constructor parameters, TypeScript automatically does two things: declare an object property with that name, and initialize it with whatever DI has provided for it at construction time. So if you remove private contacts: Contacts from the constructor, it will cease to do those two things, and this.contacts will not exist when you try to use it.

Hi rapropos,

Yes I already tried,the command are not working . Can you provide me example how can i solve this problem.

Thank you

Frankly, no, because you have not described what the problem actually is.


Problem solve, rapropos thank you for your explanation for this.

constructor(public navCtrl: NavController,public navParams: NavParams) {
this.contacts = navParams.get(‘contact’);