Html 获取错误“;没有NavController的提供程序“;尝试将数据从子组件传递到父组件时
我正在尝试使用EventEmitter和Output将数据从my home.ts文件发送到app.component.ts文件。但每次我在app.html中引用主页组件时,我都会遇到这个看似随机的错误。当我从home.ts中的构造函数中删除NavController时,错误消失了 home.ts:Html 获取错误“;没有NavController的提供程序“;尝试将数据从子组件传递到父组件时,html,angular,typescript,ionic2,Html,Angular,Typescript,Ionic2,我正在尝试使用EventEmitter和Output将数据从my home.ts文件发送到app.component.ts文件。但每次我在app.html中引用主页组件时,我都会遇到这个看似随机的错误。当我从home.ts中的构造函数中删除NavController时,错误消失了 home.ts: import { Component, EventEmitter, Output } from '@angular/core'; import { NavController }
import { Component, EventEmitter, Output } from '@angular/core';
import { NavController } from 'ionic-angular';
@Component({
selector: 'page-home',
templateUrl: 'home.html',
})
export class HomePage {
message : any;
@Output() notify : EventEmitter<Object> = new EventEmitter<Object>();
constructor(public navCtrl: NavController) {
}
ionViewDidLoad(){
this.message = {"Name":"Sid", "Age":17};
this.notify.emit(this.message);
}
}
如何修复此错误?我需要使用导航控制器,因此无法删除它。我希望仍然能够将数据从子组件发送到父组件。错误指出您应该在提供者部分的某个地方提供NavController。此部分可能位于应用程序的多个模块中,但一般是app.module.ts文件 在这里有一个providers部分,您可以在其中为角度依赖注入机制提供适当工作的服务或提供者 因此,我的第一个想法是在app.module.ts文件的providers部分添加navController。这确保Angular可以解析对NavController的依赖关系。将其放在app.module.ts文件中,使其在整个应用程序中都具有相同的navcontroller实例
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
...
],
imports: [
...
],
exports: [
],
providers: [
...
NavController
]
})
但是,由于您使用的是爱奥尼亚,我想在下面的url上查看一个相关主题
错误指出您应该在提供者部分的某个地方提供NavController。此部分可能位于应用程序的多个模块中,但一般是app.module.ts文件 在这里有一个providers部分,您可以在其中为角度依赖注入机制提供适当工作的服务或提供者 因此,我的第一个想法是在app.module.ts文件的providers部分添加navController。这确保Angular可以解析对NavController的依赖关系。将其放在app.module.ts文件中,使其在整个应用程序中都具有相同的navcontroller实例
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
...
],
imports: [
...
],
exports: [
],
providers: [
...
NavController
]
})
但是,由于您使用的是爱奥尼亚,我想在下面的url上查看一个相关主题
Refer我确实尝试过将NavController添加到app.module.ts中的providers数组中,但这只会导致更多错误,根据我从教程和一般实践中看到的情况,无论如何都不应该将其添加到那里。问题是我不能在home.ts中使用NavController,而不能在app.component.ts中使用。我想了解为什么将数据从子组件发送到父组件会导致此错误。如果我不发送任何数据,则不会发生此错误。正如我之前所说,如果我不在home.ts构造函数中注入NavController,那么错误也不会发生。我确实尝试过将NavController添加到app.module.ts中的providers数组中,但这只会引发更多错误,根据我从教程和一般实践中看到的情况,无论如何都不应该将其添加到那里。问题是我不能在home.ts中使用NavController,而不能在app.component.ts中使用。我想了解为什么将数据从子组件发送到父组件会导致此错误。如果我不发送任何数据,则不会发生此错误。就像我之前说过的,如果我不在home.ts构造函数中注入NavController,那么错误也不会发生。
@NgModule({
bootstrap: [ AppComponent ],
declarations: [
...
],
imports: [
...
],
exports: [
],
providers: [
...
NavController
]
})