angular - 如何在发射观察者中发送相同的值?
问题描述
我有输出值:
@Output() addChanged = new EventEmitter<any>();
我发出的价值为:
this.addChanged.emit(true);
它始终是真正的价值。
因此,在组件中,我尝试像这样听这个值:
ngAfterViewInit() {
console.log(this.isAdding);
}
问题是我总是发送相同的值true
,因此第二次ngAfterViewInit
对我不起作用。
解决方案
如果您检查 Angular 源代码,EventEmitter
您会发现 Angular 实际上是在super.next(value)
您每次调用该emit(value)
函数时触发的。这意味着您将获得父订阅者的最新值。
来源: https ://github.com/angular/angular/blob/master/packages/core/src/event_emitter.ts#L85
您需要做的就是为您的自定义事件添加一个函数处理程序,例如:
<my-child-component (addChanged)="handlerFunction($event)">
在你的打字稿文件中:
handlerFunction(value){
console.log(value)
}
推荐阅读
- javascript - Raspberry Pi 中 Google Chromium Print PDF Preview 的页脚部分出现空白 URL 框
- javascript - 为什么在输入更改后提交状态没有立即更新?
- amazon-web-services - 以毫秒为单位查询 100Gb 的 S3 数据
- python-3.x - 如何解决 Tensorflow 2.0 中的 RuntimeError?
- flutter - Flutter Web:如何修复 SelectableText 对齐?
- visual-studio-2013 - 加载 Crystal Report 后 Visual Studio 冻结
- javascript - 在电子与反应应用程序中如何从最小化状态恢复后解决空白白屏
- python - create_app(test_config=None) 即使没有被调用也可以工作
- django - 从 django 字段中的 ENUM 中获取特定选择
- android - Helvetica Neue 在 Android 上加载良好