0

저는 현재 각도 2 프론트 엔드 + 자바 백엔드 애플리케이션이 있습니다.각도 : GET 후 데이터로 라우팅

일부 마약 검색 기준으로 구성된 마녀가 있습니다. 제출시, 나는 검색을 진행한다 : 결과를 반환하는 http get 메소드 (복합 형). 라우팅을 사용하여이 결과를 다른 페이지에 표시하고 싶습니다.

어떻게 처리해야합니까?

라우터의 탐색 방법을 사용하여 일부 데이터를 전달할 수 있습니까?

도움을 주시면 감사하겠습니다. 나는 계속해서 탐색 할 것이다.

답변

1

올바른 방법은 서비스를 사용하여 구성 요소간에 통신하는 것입니다.

각도에서보기까지이 링크를 확인하십시오. https://angular.io/docs/ts/latest/cookbook/component-communication.html

매개 변수를 링크에 전달하고 경로에 의해 호출 된 구성 요소에서 해당 매개 변수를 읽을 수도 있습니다.

이 정보가 도움이되기를 바랍니다.

+0

그게 내가 원하는 것입니다. 고맙습니다. – bchampion

0

기본 아이디어는 여기에 양식을 추가하고 쿼리를 기반으로 다른 구성 요소에 결과를 표시하고자합니다.

내 제안은 routerLink와 매개 변수를 사용하여 양식 및 두 번째 구성 요소에 입력 한대로 다른 구성 요소로 이동하는 것입니다. ngAfterViewInit 두 번째 구성 요소에서 결과를 얻을 수 있도록 백엔드를 쿼리 할 수 ​​있습니다.

희망이 도움이됩니다.

0

각도 라우팅은 대형 개체를 전달하기위한 것이 아닙니다. 경로 매개 변수와 쿼리 매개 변수는 전달할 수 있지만 복합 개체는 전달할 수 없습니다.

구성 요소간에 데이터를 공유해야하는 경우 서비스의 공유 인스턴스를 사용하는 것이 좋습니다.

공유 서비스에 대해 관찰 가능하도록 권장합니다 (단, 어떤 수단으로도 요구 사항은 아님). 예를 들면 다음과 같습니다.

@Injectable() 
export class MySharedService { 
    // BehaviorSubjects start with a default value and replay the latest value to components that subscribe at any point in the lifecycle. 
    // Subject types do not start with a default value and do not replay the latest value, so if a component subscribes after it's fired, it won't receive the value. 
    private someStringDataSource = new BehaviorSubject<string>(''); 

    someString$ = this.someStringDataSource.asObservable(); 


    setSomeString(newString: string) { 
    this.someStringDataSource.next(newString); 
    } 

} 



export class AppComponent implements OnInit, OnDestroy { 
    sub: Subscription; 

    constructor(private sharedService: MySharedService) { } 

    ngOnInit() { 
    // subscribe to data from service 
    this.sharedService.someString$.subscribe(data => //do something with data); 


    //send data to service 
    this.sharedService.setSomeString('newString'); 
    } 

    ngOnDestroy(){ 
    this.sub.unsubscribe();  
    } 

}