【发布时间】:2021-03-21 23:41:38
【问题描述】:
我正在做一个简单的练习来演示 Angular 中变量的子/父交互。我一直在网上寻找解决方案,但主要是建议 Observables、Services 和 Event Emitters。然而,这些对我正在做的事情的范围没有帮助,我想实现一个子组件的简单增量。这是我所拥有的:
import { Component, Input } from "@angular/core";
@Component({
selector: "counter",
template: `
<h2>
<p>{{ count }}</p>
<counter-button></counter-button>
</h2>
`,
styles: [
`
.counter-button {
font-size: 1rem;
padding: 5px 10px;
color: #585858;
}
`
]
})
export class CounterComponent {
count: number = 42;
}
@Component({
selector: "counter-button",
template: `
<button (click)="increment()">
Click
</button>
`
})
export class CounterButtonComponent {
@Input() count: number;
constructor() {}
increment() {
this.count++;
}
}
我的任务是让CounterButtonComponent 在通过单击按钮调用函数increment() 后增加CounterComponent 中的值计数。我尝试通过构造函数传递组件,但没有将值分配回主计数。如何使用 @Input 将计数发送到子组件并让它增加父计数?不使用服务、发射器、可观察对象……等。
谢谢
【问题讨论】:
-
为什么不使用发射器?最简单的方法是使用
EventEmitter<number>作为@Output,每次递增数字时都会发出值,并且父级需要监听
标签: angular typescript