Внутри вашего сервиса, пожалуйста, создайте свойства, такие как:
private genderSource = new Subject<Array>();
genderSourceObservable = this.genderSource.asObservable();
Внутри loadGenders()
:
public loadGenders(): Observable<GenderFilter> {
return this.rest.get("/filter/getgenders")
.map((result: Response) => {
this.genderFilter.genders = result.json()
this.genderSource.next(this.genderFilter.genders);
return this.genderFilter.genders;
});
}
Тогда везде, где вы используете этот сервис ... добавьте этот код в ngOnInit()
this.accountRequestFilterService.genderSourceObservable .subscribe(() => {
// do whatever you need here..
})
РЕДАКТИРОВАТЬ: Это дополнительные .. в соответствии с предложением в комментариях ..
Вы также можете обновить Observable внутри установщиков свойств. В вашем случае у вас есть свойство genders
, поэтому создание сеттера для этого не выглядит хорошо для меня, но просто для полноты я добавлю это к ответу.
Скажем, у вас есть свойство _genders
вместо genders
, и вы создали для него свойство.
Что-то вроде:
set gender(value) {
// setters could be useful validations.. restricting what value
// you actually want to set, etc..
this._gender = value;
}
Чтобы вы могли обновить Observable в сеттере, например:
set gender(value) {
this._gender = value;
this.genderSource.next(this._gender); // or use the getter for gender
}