2017-09-27 3 views
2

두 구성 요소가 모두 ngFor 인 경우 다른 구성 요소에 구성 요소 참조를 전달할 수 있습니까? 그런ngFor (각도) 내부의 구성 요소 참조 전달

<div *ngFor="let address of fields?.addresses"> 
    <div> 
     <o-lookup-dropdownlist></o-lookup-dropdownlist> 
     <o-lookup-dropdownlist [cascade]="!!!linkToUpper o-lookup-dropdownlist !!!!"></o-lookup-dropdownlist> 
    </div> 
</div> 

뭔가 :

<div *ngFor="let address of fields?.addresses; let i = index"> 
    <div> 
     <o-lookup-dropdownlist #first{{i}}></o-lookup-dropdownlist> 
     <o-lookup-dropdownlist [cascade]="'first' + i"></o-lookup-dropdownlist> 
    </div> 
</div> 

사용 사례 : (@methgaard) 두 번째 드롭 다운리스트가 첫 번째 (국가의 결과에 의존하기 때문에
내가 구성 요소 참조가 필요 -에> 우편 번호 예). 구성 요소 참조가있는 경우 첫 번째 값이 될 때까지 두 번째 o-lookup-dropdownlist을 사용하지 않도록 설정할 수 있습니다. (국가를 선택하기 전에 우편 번호를 선택할 필요가 없습니다.) 각 ng-template를 들어

<ng-template ngFor [ngForOf]="fields?.addresses" let-address="$implicit" let-i="index"> 
    <div>...</div> 
</ng-template> 

가 자신의 범위가 EmbeddedView를 만듭니다처럼

+2

방금'#의 first'을 사용'[폭포] = "최초의"'처럼 통과 봤어 :

그래서 당신은 *ngFor 내부의 같은 템플릿 참조 변수를 사용할 수 있습니까? 만약 당신이 그걸 시도해 보지 못했다면 – yurzui

+0

위의 로직을 시도 할 때 어떤 오류가 발생합니까? –

+0

왜 구성 요소 참조를 원하십니까? – methgaard

답변

2
*ngFor="let address of fields?.addresses; let i = index"

확장 버전을 볼 것이다.

<o-lookup-dropdownlist #first></o-lookup-dropdownlist> 
<o-lookup-dropdownlist [cascade]="first"></o-lookup-dropdownlist>