在Angular中,可以使用EventEmitter来发布和订阅事件。如果要订阅一个EventEmitter,并且在订阅时获取现有的项目,可以使用以下解决方法:
import { EventEmitter } from '@angular/core';
export class MyComponent {
myEventEmitter: EventEmitter = new EventEmitter();
}
pipe
操作符来处理现有的项目。使用startWith
操作符来指定初始的项目,然后使用tap
操作符来处理每个项目:import { tap, startWith } from 'rxjs/operators';
this.myEventEmitter.pipe(
startWith(initialValue), // 指定初始的项目
tap((item) => {
// 处理项目
console.log(item);
})
).subscribe();
在上面的代码中,initialValue
是一个初始的项目,可以根据需要设置。tap
操作符中的逻辑将会在每个项目被发出时执行。
emit
方法:this.myEventEmitter.emit(item);
以上就是订阅EventEmitter并获取现有项目的解决方法。