Я работаю над проектом, в котором родители и дети должны общаться через службу. После этой статьи в официальной документации я не могу заставить ее работать.
Это сервис, который я создал:
import { Injectable } from '@angular/core';
import { Subject } from 'rxjs';
@Injectable()
export class CommonService {
private _propertyChangeAnnouncedSource = new Subject<string>();
propertyChangeAnnounced$ = this._propertyChangeAnnouncedSource.asObservable();
public announcePropertyChange(data: string) {
this._propertyChangeAnnouncedSource.next(data);
}
}
В родительском компоненте я импортирую все, что мне нужно:
@Component({
selector: 'app-parent',
templateUrl: './parent.component.html',
styleUrls: ['./parent.component.scss'],
providers: [CommonService]
})
export class ParentComponent implements OnInit {
constructor(private _commonService: CommonService) {
}
tellChild(data): void {
this._commonService.announcePropertyChange(data);
}
}
Это код ребенка:
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.scss']
})
export class ChildComponent implements OnInit, OnDestroy {
private subscription: Subscription;
constructor(private _commonService: CommonService) {
this.subscription = this._commonService.propertyChangeAnnounced$.subscribe(
data => {
console.log(data);
});
}
}
Когда я вызываю announcePropertyChange, ребенок не отвечает. Любое предложение?
Спасибо!