2016-11-15 4 views
0

Ich habe eine Ionic2 App, die gerade nicht mehr funktioniert (nicht sicher warum).Ionic TypeError: b ist undefined

folgenden Befehl ein:

ionic serve 

Baut die App ohne Fehler, aber wenn http://localhost:8100/ in den Browser geladen wird, erhalte ich:

TypeError: b is undefined 

Um dies zu debuggen Ich habe versucht zu setzen a console.log an der Spitze app.ts Konstruktor, aber dies wird nicht gedruckt.

Hat jemand irgendwelche Ideen was falsch ist, oder sollte ich versuchen, dies zu diagnostizieren?

Dank

UPDATE

Ich habe etwas mehr Debugging getan, und ich habe festgestellt, dass dies auf Vererbung einer Variablen denken zusammenhängt ich.

Ich habe den folgenden Code:

search.ts

export class SearchPage extends SearchSubParentPage { 

    constructor(ref: ChangeDetectorRef, nav: NavController, private viewCtrl: ViewController, jobService: JobService, personService: PersonService, utilityService: UtilityService, navParams: NavParams, popoverController: PopoverController, events: Events, platform: Platform, alertCtrl: AlertController, loadingController: LoadingController) { 
    super(ref, nav, viewCtrl, jobService, personService, utilityService, navParams, popoverController, events, platform, alertCtrl, loadingController, false, 0); 
    } 

searchSubParent.ts

export class SearchSubParentPage extends SearchParent { 

private popoverController: PopoverController = null; 

    constructor(ref: ChangeDetectorRef, nav: NavController, viewCtrl: ViewController, jobService: JobService, personService: PersonService, utilityService: UtilityService, navParams: NavParams, popoverController: PopoverController, events: Events, platform: Platform, alertCtrl: AlertController, loadingController: LoadingController, favourite: boolean, jobType: number) { 
    this.popoverController = popoverController; 
} 

Wie Sie sehen können, das popoverController Objekt über die übergeben wird Konstruktor zum Eltern SearchSubParentPage.

Wenn ich die folgende Codezeile in SearchSubParentPage haben, erhalte ich die Fehlermeldung:

this.popover = this.popoverController.create(SearchJobsPopOverPage, {... 

Wenn ich kommentieren Sie sie aus, es funktioniert. Das deutet also darauf hin, dass mit der Art und Weise, wie ich popoverController an das übergeordnete Objekt übergebe, etwas nicht stimmt (ich habe das gleiche Problem mit dem Objekt nav).

Wenn I console.log entweder this.popoverController oder this.nav, scheinen sie in Ordnung zu sein (d. H. Nicht undefiniert oder null).

+0

Haben Sie eine var b irgendwo genannt? Könntest du mehr Code zeigen? – nyluje

+0

oder hast du zufällig in deiner Klasse b auf deiner Tastatur gedrückt? – Ivaro18

+0

Ich habe gerade die obige Frage aktualisiert, um mehr Informationen zu haben. Es sieht so aus, als ob es damit zusammenhängt, wie ich ein Objekt durch Vererbung von einem Kind an ein Elternteil weitergebe. Aber ich bin mir nicht sicher, wie ich das beheben soll. – Richard

Antwort

0

Wenn ich das Objekt veröffentlichen, funktioniert es, nicht sicher warum.

Änderung:

private popoverController: PopoverController = null; 

zu:

public popoverController: PopoverController = null; 
Verwandte Themen