我有一个Ionic2应用程序,它刚刚停止工作(不确定原因)。
以下命令:
ionic serve
构建应用程序时没有错误,但当http://localhost:8100/
加载到浏览器中时,我得到:
TypeError: b is undefined
为了调试这个,我尝试将console.log
放在app.ts
构造函数的顶部,但是没有打印出来。
有没有人有任何错误的想法,或者我应该尝试诊断这个?
由于
更新
我一直在做一些调试,我发现这与我认为的变量的继承有关。
我有以下代码:
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;
}
如您所见,popoverController
对象通过构造函数传递给父SearchSubParentPage
。
如果我在SearchSubParentPage
中有以下代码行,则会收到错误:
this.popover = this.popoverController.create(SearchJobsPopOverPage, {...
如果我发表评论,它就有效。所以这表明我将popoverController
传递给父母的方式有问题(我对nav
对象也有同样的问题。)
如果我console.log
this.popoverController
或this.nav
,它们似乎没问题(即未定义或为空)。
答案 0 :(得分:0)
如果我将对象设为公开,则可行,但不确定原因。
变化:
private popoverController: PopoverController = null;
为:
public popoverController: PopoverController = null;