2017-05-30 7 views
0

Ich bin mir nicht sicher, wo ich mit ionViewDidLeave falsch liege. Ich bekomme einen Fehler von dem Terminal, der sagt: "Kann IonViewDidLeave nicht finden". Gibt es etwas, das ich importieren muss, um es zu benutzen? Ich habe den navController bereits importiert.Fehler: Name kann nicht gefunden werden IonViewDidLeave

Hier ist meine

ts.file

import { Component } from '@angular/core'; 

import { NavController, ModalController } from 'ionic-angular'; 
import { EditPost } from '../edit-post/edit-post'; 

import { LoadingController } from 'ionic-angular'; 

@Component({ 
    selector: 'page-home', 
    templateUrl: 'home.html' 
}) 
export class Home { 

    buttonColor: string = '#787083'; 


    constructor (public navCtrl: NavController, public modalCtrl: ModalController, public loading: LoadingController) { 


//OTHER FUNCTIONS 

    /*Navigate to edit page */ 

    editPost(){ 
     this.buttonColor = '#553481'; //change button background color on click 
      this.navCtrl.push(EditPost, {}) 
      .catch(() => { 
       // Page requires authentication, re-direct to Login page 
       this.navCtrl.setRoot(Login, {routeToPage: 'EditPost'}); 

      }); 

      ionViewDidLeave(){ 

     this.buttonColor = '#787083'; 

      }; 

    }// end of editPost() 

}//close class 

HTML

<ion-footer class="footer"> 
    <ion-segment small class="footer"> 
        <ion-segment-button id="post" value="post" (click)="postEvent()" [ngStyle]="{'background-color': buttonColor}" small> <span class="footer">NEW POST</span></ion-segment-button> 
        <ion-segment-button id="edit" value="edit" (click)="editPost()" [ngStyle]="{'background-color': buttonColor}" small> <span class="footer">Edit Post</span></ion-segment-button > 
    </ion-segment> 
</ion-footer> 

Antwort

1

Wenn Sie innerhalb einer Methode schreiben

ionViewDidLeave() 

Sie rufen eine Funktion aus dem aktuellen Bereich (editPost) -Funktion. Der richtige Weg, von dem Objekt zu nennen wäre:

this.ionViewDidLeave() 

aber ich denke, es ist nicht richtig, es zu nennen (ionViewDidLeave ist ein Teil des ionischen Seite Lebenszyklus), und ich denke, auch das, was Sie wollen, dies zu tun definieren Methode und Sie haben einen Code eingeben. Der richtige Code sollte lauten:

export class Home { 

    buttonColor: string = '#787083'; 

    constructor (public navCtrl: NavController, public modalCtrl: ModalController, public loading: LoadingController) { 

    editPost(){ 
     this.buttonColor = '#553481'; //change button background color on click 
      this.navCtrl.push(EditPost, {}) 
      .catch(() => { 
       // Page requires authentication, re-direct to Login page 
       this.navCtrl.setRoot(Login, {routeToPage: 'EditPost'}); 
      }); 

    }// end of editPost() 


    ionViewDidLeave(){ 

     this.buttonColor = '#787083'; 

    }; 

}//close class 
Verwandte Themen