Use*_*842 5 eventemitter angular
假设我有一些事件从服务中发出字符串值:
public myString: EventEmitter<string> = new EventEmitter<string>();
然后在我的组件中,发出如下消息:
this.myService.myString.emit(value)
我想为尚未发出任何事件的使用此事件的字符串设置默认值。是否可以做类似的事情:
public setString: string = 'Default Value, No Emission Yet' || this.myService.subscribe(emittedValue => this.setString = emittedValue);
Run Code Online (Sandbox Code Playgroud)
    由于您使用的是服务,我建议不要使用EventEmitter:EventEmitter 的正确用法是什么?
既然你想要一个初始值,我建议 aBehaviorSubject取一个初始值。
import { BehaviorSubject } from 'rxjs/BehaviorSubject';
private myString = new BehaviorSubject<string>('Default Value, No Emission Yet')
public myString$ = this.myString.asObsevable();
Run Code Online (Sandbox Code Playgroud)
然后就在您的组件中,您可以收听此可观察对象并相应地执行操作。记得在组件销毁时取消订阅!
mySub = new Subscription();
constructor(private myService: MyService) { 
  this.mySub = myService.myString$.subscribe(value => {
    // conditions and do stuff...
  })
}
ngOnDestroy() {
  this.mySub.unsubscribe();
}
Run Code Online (Sandbox Code Playgroud)
        |   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1514 次  |  
        
|   最近记录:  |