>

속성 바인딩을 사용하지 않고 구성 요소간에 실시간으로 데이터에 액세스하는 방법이 있습니까?

내가 그것을 사용할 수없는 이유는 내 자식 구성 요소가 대화 상자이고 app.component.html에서 라우터 콘센트를 사용하고 있기 때문입니다.

  • 답변 # 1

    내가 생각할 수있는 3 가지 방법이 있습니다 ..

    <올>

    RxJS 옵저버 블과 함께 서비스 사용

    대화 상자 구성 요소 인스턴스를 사용하여 데이터 전달

    라우터 사용 state {상태 : {...})

    옵션 1에 대한 간단한 예를 들어 보겠습니다.

    성분 A는 데이터를 보낸다

    this.sharedService.data(data);
    
    

    shared-service.ts

    private data$ = new Subject<Data>();
    dataListener$: Observable<Data> = this.data$.asObservable();
    data(data: Data) {
        this.data$.next(data);
    }
    
    

    구성 요소 B가 Observable을 구독합니다.

    private readonly onDestoy = new Subject<void>();    
    ngOnInit(): void {
        this.sharedService.data$.pipe(
            takeUntil(this.onDestroy) // very important to unsubscribe
            tap((data: Data) => console.log(data)) // here is your data
        ).susbscribe()
    }
    
    ngOnDestroy() {
        this.onDestroy.next();
        this.onDestroy.complete();
    }
    
    

    도움이 되길 바랍니다 ..

관련 자료

  • 이전 SQL Snowflake에서 시작 및 종료 날짜 확장
  • 다음 base64 - MediaRecorder의 Webm Blob이 깨진 비디오를 생성합니다