проблема в этой строке
this.myDetails.myDetail = this.myDetailSubject;
, которую вы назначаете BehaviorSubject<MyDetail>
на IMyDetail
, так что вам нужно изменить ее, так как я не знаю, какова вашасервис перезапускается. Я не могу сказать вам, следует ли ему присвоить x
или какое-либо свойство x
.
Кстати, ваш код кажется ненужным, я думаю, вы можете удалить myDetailSubject
вваш компонент и используя результат обслуживания с async
pipe или назначьте его частному члену и позвольте угловой привязке изменить ваш пользовательский интерфейс
для примера
<code>export class MyComponent implements OnInit {
id: string;
myDetails: MyDetails;
constructor(private route: ActivatedRoute, private myDetailService: MyDetailService) {
route.params.subscribe(x => this.id = x['id'])
}
ngOnInit() {
this.myDetailService.getData(this.id)
.subscribe(x => {
this.myDetails = x; // or x based on what is return from your service
});
}
}
<pre>
{{myDetails.myDetail | json}}
или
<code>export class MyComponent implements OnInit {
id: string;
myDetailSubject$ : SubjectBahvior<MyDetail>;
constructor(private route: ActivatedRoute, myDetailService: MyDetailService) {
route.params.subscribe(x => this.id = x['id'])
}
ngOnInit() {
this.myDetailSubject$ = this.myDetailService.getData(this.id);
}
}
<pre>
{{myDetailSubject$ | async}}