猿问

TypeError: ctx.onCreditChange 不是函数角度

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


一个.html


    <nb-box [onCreditChange]="onCreditChange"></nb-box>

A.ts


onCreditChange($event) { console.log($event) }

组件 A 的功能转移到 B。


组件 B 看起来像这样


B.html


<div class="box">

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


</div>

B.ts(该组件的一部分)


import { Component, Input, NgModule, EventEmitter, Output} from '@angular/core';


export class Box extends BoxBase {

  @Output() onCreditChange: EventEmitter<any> = new EventEmitter()


}

调用函数时出现错误


core.js:6241 ERROR TypeError: ctx.onChange is not a function

你知道怎么修吗?


月关宝盒
浏览 75回答 1
1回答

LEATH

父组件HTML<nb-box (onCreditChange)="onCreditChange"></nb-box>TSonCreditChange($event) { console.log($event) }子组件错误从这里开始,因为 Output 不是一个函数,它是一个允许您将事件发送给父级的对象。您需要在子函数内部执行一个函数,并使用输出对象发出。HTML<div class="box">&nbsp;<nb-switch&nbsp; (onChange)="onChangeInChild($event)"></nb-switch></div>TSimport { Component, Input, NgModule, EventEmitter, Output} from '@angular/core';export class Box extends BoxBase {&nbsp; @Output() onCreditChange = new EventEmitter<any>()&nbsp; onChangeInChild(eventObject: any){&nbsp; &nbsp; &nbsp; this.onCreditChange.emit(eventObject)&nbsp; }}
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答