У меня есть Компонент A, Компонент B и сервис.Я объявил Subject в сервисе и подписал Subject в компоненте B. И я отправляю некоторые данные из компонента A в Subject перед переходом к компоненту B. Он перемещается к компоненту B, но метод Subscribe не запускается.
Служба:
@Injectable({
providedIn: 'root'
})
export class ServiceTestService {
storage: Recipe;
recipeSelected = new Subject<any>();
constructor() { }
}
Компонент A Отправка сообщения наблюдаемой
@Component({
selector: 'app-recipe-item',
templateUrl: './recipe-item.component.html'
})
export class RecipeItemComponent implements OnInit {
@Input() recipe: Recipe;
constructor(
private recipeService: ServiceTestService,
private rt: Router) { }
ngOnInit() {
}
onRecipeSelected(name: number) {
this.recipeService.recipeSelected.next(this.recipe);
this.rt.navigate(['/recipe', this.ind]);
}
}
Компонент B: Здесь я подписался на Observable.
@Component({
selector: 'app-recipe-detail',
templateUrl: './recipe-detail.component.html',
styleUrls: ['./recipe-detail.component.css']
})
export class RecipeDetailComponent implements OnInit, OnDestroy {
recipe: Recipe;
constructor(private recipeService: ServiceTestService) { }
ngOnInit() {
this.recipeService.recipeSelected.subscribe(
(res: any) => {
console.log(`Recipe Component ${res}`); }
);
}
}
Он перемещается от Компонента A к Компоненту B, но метод подписки не запускается в Компоненте B. Пожалуйста, предложите.