>

백엔드에서 데이터를 미리 가져 오기 위해 자체 라우팅 모듈과 리졸버가있는 고유 한 구성 요소 용 모듈이 있습니다. 구성 요소의 ngOnInit ()에서 양식을 채우기 위해 경로에 전달 된 데이터를 얻습니다. 따라서 경로로 호출하면 작동합니다.

문제는 또한 다른 외부 모듈의 구성 요소 내부에서 선택기로로드하고로드하기 전에 데이터를 미리 가져올 수 있기를 원합니다.

내가 얻는 자연스러운 해결책은 ngOnInit에서 이것을하는 것입니다 :

ngOnInit() {
  if(comingFromRoot()) {
   this.route.data.subscribe(
     (data: {contactData: any}) => {
      ...
     }     
   );
  } else {
    this.backend.getContactData().subscribe( () => ... );
  }
}

더 나은 해결책이 있습니까?


  • 답변 # 1

    ngIf 를 사용할 수 있습니다  이 경우 부모 구성 요소 html과 유사합니다.

    <your-componenet *ngIf="data" [data]="data"></your-component>
    
    

    컴포 네넷에서 데이터를 입력으로 가져 오기

     @Input() data:any;
      ngOnInit() {
          if(!data) {
          this.route.data.subscribe((data: {contactData: any}) => {
          ...
          });
       }
    
    

    및 부모 component.ts에

    data:any;
    //following in constructur or ngoninit
    this.backend.getContactData().subscribe( (data) => this.data=data );
    
    

관련 자료

  • 이전 이진 분류에서 한 클래스의 높은 정밀도를 최적화하는 방법이 있습니까?
  • 다음 sql - null이 아닌 열 그룹을 선택해야합니다