angular - 如何让子组件和父组件之间的 Angular 2 通信正常工作?

标签 angular eventemitter

父模板

<problem-form *ngIf=showProblemView (addProblem)=problemAdd($event)></problem-form>

子组件

import { Component, Output, EventEmitter } from '@angular/core';
@Output() addproblem = new EventEmitter<string>();
onClick() {
    this.addproblem.emit('something')
    console.log('onSubmit')
    this.active = false;
}

父事件处理程序

problemAdd($event) {
    debugger;
    console.log('eventString ')
}

我知道子事件是从调试器之后发出的。我的理解是父级没有捕获发出的子事件。有任何想法吗?谢谢!

最佳答案

在您的 child 中:

@Output() addproblem = new EventEmitter<string>();

在父级中:

<problem-form *ngIf=showProblemView (addProblem)=problemAdd($event)></problem-form>
                                        ^

注意大写的 P。

Angular 2 区分大小写。

将属性重命名为 addProblem 或将输出处理程序重命名为 (addproblem)

关于angular - 如何让子组件和父组件之间的 Angular 2 通信正常工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38647150/

相关文章:

javascript - 为什么这个简单的基于数组的事件发射器顺序敏感?

javascript - 用一个事件桥接两个事件监听器

javascript - 在 Node.js 中使对象实例可观察

Angular 2 : Get Authorization header

validation - Angular2 - 创建可重用、经过验证的文本输入组件

使用数组输入属性时,父项中的 Angular2 更改未反射(reflect)在子项中

angular - Angular/NativeScript 应用程序中的单元测试

css - Bootstrap css 无法在 ngClass 中正确呈现

javascript - 放置在 Angular ngOnChanges 生命周期 Hook 中时,函数未运行

javascript - 从类中发出事件