You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何将子组件的增量操作同步更新到父组件的计数器

Angular子组件计数值回传父组件实现方案

实现逻辑

Angular 父子组件跨级通信场景下,子组件通过@Output装饰器定义自定义事件,更新值后通过EventEmitter将新值抛出,父组件监听该自定义事件即可接收更新后的值同步自身状态。

代码修改步骤

1. 调整增量子组件(plus.component.ts)代码

  • 修正EventEmitter泛型为数字类型,匹配计数变量类型
  • 增量操作完成后触发自定义事件抛出最新计数值
    修改后完整代码:
import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';

@Component({
  selector: 'app-plus',
  templateUrl: './plus.component.html',
  styleUrls: ['./plus.component.css']
})
export class PlusComponent implements OnInit {
  @Input() count: number;
  @Output() countUpdatePlus = new EventEmitter<number>();

  constructor() { }

  ngOnInit(): void {
  }

  onPlus() {
    this.count ++;
    this.countUpdatePlus.emit(this.count);
  }
}

2. 调整父组件(app.component.html)代码

在子组件标签上监听子组件抛出的countUpdatePlus自定义事件,接收抛出的新值同步给父组件的currentCount变量:

<h1>{{title}}</h1>
<p>Count: {{currentCount}}</p>
<app-plus [count]="currentCount" (countUpdatePlus)="currentCount = $event"></app-plus>

3. 可选优化:父组件变量类型优化

将父组件currentCount的any类型调整为number,符合TypeScript类型规范:

import { Component } from '@angular/core';

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'complicatedAngularCounter';
  currentCount: number = 0;
}

修改完成后点击子组件的增量按钮,父子组件的计数值就会同步更新。

内容的提问来源于stack exchange,提问作者Javier Hernandez

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 11:09:03