Javascript TypeError:ctx.onCreditChange不是函数

Javascript TypeError:ctx.onCreditChange不是函数,javascript,angular,Javascript,Angular,我有两个部分。组件A是父组件,组件B是子组件。 组件A如下所示: A.html <nb-box [onCreditChange]="onCreditChange"></nb-box> 组件A的功能被转移到B 组件B看起来像这样 B.html <div class="box"> <nb-switch (onChange)="onCreditChange($event)"><

我有两个部分。组件A是父组件,组件B是子组件。 组件A如下所示:

A.html

    <nb-box [onCreditChange]="onCreditChange"></nb-box>
组件A的功能被转移到B

组件B看起来像这样

B.html

<div class="box">
 <nb-switch  (onChange)="onCreditChange($event)"></nb-switch>

</div>

您知道如何修复它吗?

父组件

HTML

<nb-box (onCreditChange)="onCreditChange"></nb-box>
<div class="box">
 <nb-switch  (onChange)="onChangeInChild($event)"></nb-switch>

</div>
子组件

错误从这里开始,因为输出不是一个函数,它是一个允许您向父对象发送事件的对象。您需要在子函数中执行一个函数,该函数的内部使用输出对象发出

HTML

<nb-box (onCreditChange)="onCreditChange"></nb-box>
<div class="box">
 <nb-switch  (onChange)="onChangeInChild($event)"></nb-switch>

</div>

TS

onCreditChange($event) { console.log($event) }
import { Component, Input, NgModule, EventEmitter, Output} from '@angular/core';

export class Box extends BoxBase {
  @Output() onCreditChange = new EventEmitter<any>()

  onChangeInChild(eventObject: any){
      this.onCreditChange.emit(eventObject)
  }
}
import{Component,Input,NgModule,EventEmitter,Output}来自'@angular/core';
导出类框扩展了BoxBase{
@Output()onCreditChange=新的EventEmitter()
onChangeInChild(eventObject:any){
this.onCreditChange.emit(eventObject)
}
}

这:[onCreditChange]=“onCreditChange”不应该是:(onCreditChange)=“onCreditChange”?@MikeOne我更改了,但我得到了新的错误:此表达式不可调用。类型“EventEmitter”没有调用签名。
import { Component, Input, NgModule, EventEmitter, Output} from '@angular/core';

export class Box extends BoxBase {
  @Output() onCreditChange = new EventEmitter<any>()

  onChangeInChild(eventObject: any){
      this.onCreditChange.emit(eventObject)
  }
}