我在组件初始化
中订阅了事件发射器ngOnInit(): void {
this.linksService.droppableZoneActivation.subscribe(
(activate: boolean) => {
this.activated = activate;
}
);
}
this.linksService.droppableZoneActivation
- 布尔事件发射器。我收到的值是从false变为true,反之亦然。这是使用该值的组件模板:
<div *ngIf="activated">
<div dnd-droppable (onDropSuccess)="addEntity($event)">
<a [routerLink]="['/features/links']" tabindex="-1">
...
</a>
</div>
</div>
组件仅对this.activated
更改做出两次响应。有时它根本没有反应。问题是什么?
通过从其他组件调用方法从服务中发出值。
activateDroppableZone(): void {
this.droppableZoneActivation.emit(true);
}
deactivateDroppableZone(): void {
if (!this.selectedEntities.length) {
this.droppableZoneActivation.emit(false);
}
}