web-dev-qa-db-de.com

Angular 2 (Ionic 2) ruft eine Funktion auf einer Seite auf, wenn eine Seite angezeigt wird

Wenn immer meine Homepage in angular 2(ionic 2) app geladen ist, möchte ich Service/Funktion aufrufen. Wie kann ich das erreichen?

Wenn die App zum ersten Mal geladen wird (Homepage wird geladen), kann ich dies in constructor schreiben, aber wenn der Benutzer die App verwendet und Push neue Seiten in nav controller und pop, um zu home page zurückzukehren, die constructor werden nicht mehr aufgerufen.

Ich bin hier festgefahren.

Ich würde gerne wissen, wie Sie diese Funktion am besten erreichen können. 

Ich bin neu bei angular2 und ionic2framework (auch keine Erfahrungen mit angular1 und ionic1) , bitte hilf mir.

Vielen, vielen Dank. 

aktualisieren

beispielcode von dem, was ich ausprobiert habe, aber nicht funktioniert hat.

import {Page, NavController, Platform, Storage, SqlStorage} from 'ionic-angular';

@Page({
  templateUrl: 'build/pages/page1/page1.html'
})
export class Page1 {
    static get parameters(){
        return [[NavController],[Platform]];
    }
    ngOnInit() {
        console.log("Showing the first page!");
    }
    constructor(nav, platform){
        this.nav = nav;
        this.platform =  platform;
    }
}
7
Dipak

onPageWillEnter() arbeitete für mich.

import {Page, NavController, Platform, Storage, SqlStorage} from 'ionic-angular';


@Page({
  templateUrl: 'build/pages/page1/page1.html'
})
export class Page1 {
    static get parameters(){
        return [[NavController],[Platform]];
    }
    onPageWillEnter() {
        console.log("Showing the first page!");
    }
    constructor(nav, platform){
        this.nav = nav;
        this.platform =  platform;
    }
}

Ionic Lifecycle Hook

8
Dipak

IONIC 2 RC1 Update

ionViewWillEnter() {
    console.log("this function will be called every time you enter the view");
}
6
Roman Lee

Sie können die lifeCycle-Hooks verwenden, insbesondere ngOnInit() oder ngAfterViewInit().

Hier ist ein einfaches Tutorial.

Zum Beispiel:

// Annotation section
@Component({
  selector: 'street-map',
  template: '<map-window></map-window><map-controls></map-controls>',
})
// Component controller
class StreetMap {
  ngOnInit() {  //here you can call the function wanted
    // Properties are resolved and things like
    // this.mapWindow and this.mapControls
    // had a chance to resolve from the
    // two child components <map-window> and <map-controls>
  }
}

Update: Es funktioniert für reine Angular2-Anwendungen, für IonicFramework spezifische Lösung siehe 

@ DeepakChandranP's antworten. 

1
Ankit Singh