나는 반복해서 내가 오히려 선택보다 라우터 콘센트의 반대편에 존재하는 하위 구성 요소에 액세스하고 싶은 상황으로 실행 : 나는 그것을 알고있는 ViewChild 기능을 가진@ViewChild() 또는 유사품을 라우터 콘센트와 함께 사용할 수 있습니까? 만약 그렇다면?
Like:
<router-outlet></router-outlet>
NOT:
<selector-name></selector-name>
이 충돌, 그럼에도 불구하고 내 구성 요소가 셀렉터 태그 안에있는 것과 마찬가지로 쉽게 라우터 콘센트 내부에있는 것을보고 상호 작용할 수 있어야합니다.
export class RequestItemCatsComp {
@ViewChild('child') child: RequestItemsComp;
***etc...***
ngAfterViewInit() {
if (this.child) // Always child is undefined
this.groupId = this.child.groupId;
}
}
그러나 이것은 잘못된 방법이기 때문에 자연스럽게 아이가 정의되지 않는다 :
는 예를 들어 나는이 시도. 올바른 방법이 있습니까?
서비스를 사용하여 데이터를 공유하려고하지만 "확인한 후에 표현식이 변경되었습니다"라는 해킹 문제없이 다른 문제가 발생합니다. 해킹이나 개선 모드를 사용하지 않고 해결할 수 있기를 바랍니다.
'@ViewChild (RequestItemsComp) child : RequestItemsComp;를 시도해 볼 수 있습니다. 작동하지 않을 것이라고 기대했지만'@ViewChild ('child')'는 요소에 라우트 된 구성 요소에서 사용할 수없는 템플릿 변수'# child '가있는 경우에만 작동합니다. –
서비스를 사용하여 경로간에 데이터를 공유합니다. 'setTimeout()'을 사용하여 "확인 된 후에 표현이 변경되었습니다"라는 오류를 해결할 수 있습니다. https://angular.io/docs/ts/latest/guide/lifecycle-hooks.html#!#afterview –
@Methodician : 내가 추가 한 솔루션을 확인 했습니까? 너에게 효과가 있었 니? –