제목이 정말 명확하지 않습니다. 구성 요소에 변수가 있고 다른 구성 요소에서 사용하고 싶습니다. 내 데이터를 전송할 수 있도록 서비스를 만들고 관찰 가능합니다. 내 데이터를 내 서비스로 보낸 다음이 데이터를 검색 할 페이지로 이동합니다.
this.service.myMethod(this.ville);
this.router.navigateByUrl('tabs/resto-by-ville');
뒤에 내 데이터를 가져와 다음과 같이 사용합니다.
getDataByVille() {
this.service.myMethod$.subscribe((city) => {
this.city = city;
this.http.get<Etablissement[]>('http://127.0.0.1:8000/api/etablissements/' + this.city).subscribe((data) => {
this.dataByVille = data;
console.log(this.dataByVille);
});
});
}
ngOnInit() {
this.getDataByVille();
}
내 서비스 :
export class GetDataByVilleService {
myMethod$: Observable<string>;
private myMethodSubject = new Subject<string>();
constructor() {
this.myMethod$ = this.myMethodSubject.asObservable();
}
myMethod(data) {
console.log(data);
this.myMethodSubject.next(data);
}
내 문제는 데이터를 보낼 때 전혀 발생하지 않는다는 것입니다. 두 번째로 반복하면 작동합니다. 나는 그것이 처음에 작동하지 않는 이유를 이해하지 못합니다. 아이디어가 있습니까? 현재는 UX 친화적이지 않습니다.
문제는 주제가 값을 저장하지 않기 때문에 'tabs / resto-by-ville'페이지에 도달했을 때 이미 방출이 발생했다는 것입니다.
주제 대신 다음과 같은 BehaviorSubject를 사용해야합니다.
private myMethodSubject = new BehaviorSubject <string>(null);
BehaviorSubject는 마지막으로 제공 한 값을 저장하고 구독하자마자 내 보냅니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다