통신

2016-11-11 8 views
0

나는 다음과 같은 코드를 가지고 :통신

'상태'와 '수 - 피커'내 손님 지침입니다
<tr ng-repeat="row in ctrl.tableData"> 
    <td><status></status></td> 
    <td>{{row.id}}</td>      
    <td>{{row.firstName}}</td> 
    <td>{{row.lastName}}</td>     
    <td><number-picker></number-picker></td> 
</tr> 

.

동일한 행의 '번호 선택 도구'의 상태에 따라 '상태'의 가시성을 변경하고 싶습니다. 그것들이 그리드에 있기 때문에, 두 지시어의 인스턴스가 여러 개 있습니다.

최상의 솔루션 지금까지 :
1. 'ng-repeat'는 모든 'tr'에 대해 새 범위를 생성하므로 'status'와 'number-picker'사이의 변수를 공유 할 수 있습니다.이 방법은 내가 가진 것으로 가정합니다
2. 'number-picker'에서 이벤트를 브로드 캐스팅하고 $ status를 사용하여 $ scope에 $ $를 붙여 잡으십시오.

더 깨끗한 방법이 있습니까? 이 행동?
미리 감사드립니다!

--- EDIT ---
감사합니다. Vanojx1!
당신의 제안은 내가 정말로 좋아하는 해결책으로 이끌었다.
수정 코드을 코드에 작성 했으므로 이제는 원하는 코드와 매우 유사합니다.

점은 지금은에 다른 어떤 형제 지시을 수 피커 의 일부 내부 상태의 변화를 나타 내기 위해 'numIsEven'를 사용할 수 있다는 것입니다.

PLUNKER

답변

0

shared-info 같은 속성을 추가

..... 
    scope: { 
     sharedInfo: '=' 
    }, 
.... 
row.sharedInfo이 지시 사이에 공유됩니다

:

<tr ng-repeat="row in ctrl.tableData"> 
    <td><status shared-info="row.sharedInfo"></status></td> 
    <td>{{row.id}}</td>      
    <td>{{row.firstName}}</td> 
    <td>{{row.lastName}}</td>     
    <td><number-picker shared-info="row.sharedInfo"></number-picker></td> 
</tr> 

후 사용 지침 범위 '='DOC를 정의

Plunker