我正在使用eventEmitter(来自子级)来通知父级一些事件。我有多个组件,但是...并非所有人都需要使用方法调用。是否有一种方法可以通知父组件,如果组件只是静态的,则不应该发出该组件?使用没有任何事件的发射是否安全?
我有一个父母在使用9x,但其中只有2个为过滤器设置标准并导航到另一个组件。
所有元素都有一个Output()发射器,该发射器在html中用于发射空事件。在父组件中,我具有设置标准和导航的方法,这些方法可以用作输出。
这很好,但是我想知道它将来是否会出现问题,或者这是不安全的想法。我将在下面编写示例代码。
child.component.ts
Output() emitter = new EventEmitter();
child.component.ts
<button (click)="emitter.emit()"
class="btn btn-primary"> example text
</button>
parent.component.ts
public onGetOnlineDevices() {
this.deviceState.setCriteriaWithReset({ isOnline: true });
this.navigate();
}
parent.component.ts
<div class="col-xl-6">
<child-component
(emitter)="onGetOnlineDevices($event)"
></child-component>
</div>
<div class="col-xl-6">
<child-component></child-component>
</div>
<div class="col-xl-6">
<child-component></child-component>
</div>
只有第一个子组件会设置条件并进行导航,但是我不确定是否可以安全地保留其他组件而无需任何方法。 感谢您的回答。
答案 0 :(得分:0)
这是安全的,因为它们不会消耗事件发射器正在发射的内容。
尽管您认为我需要做的是创建单独的组件。发出的子组件应该是一种类型的组件,而不发出的子组件应该是另一种类型的组件,因为它们的用途似乎有所不同。如果它们确实有很多共同点,请在它们之间创建一个基类以共享功能。
这将是获得干净代码的方法。