Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 获取错误“;没有NavController的提供程序“;尝试将数据从子组件传递到父组件时_Html_Angular_Typescript_Ionic2 - Fatal编程技术网

Html 获取错误“;没有NavController的提供程序“;尝试将数据从子组件传递到父组件时

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 }

我正在尝试使用EventEmitter和Output将数据从my home.ts文件发送到app.component.ts文件。但每次我在app.html中引用主页组件时,我都会遇到这个看似随机的错误。当我从home.ts中的构造函数中删除NavController时,错误消失了

home.ts:

     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
    ]
})