2014-02-19 2 views
0

나는 다음과 같은 코드를 가지고 : 당신이 테이블의 데이터를 클릭왜 내 TV 프로그램이 작동하지 않습니까?

<div ng-init="showDetail = false"> 
    <table> 
     <tbody> 
      <tr ng-repeat="dataTable in arrayTableData"> 
       <td ng-repeat="data in dataTable.data" ng-click="showDetail = true;">{{data}}</td> 
      </tr> 
     </tbody> 
    </table> 
    <div ng-show="showDetail"> 
     <button ng-click="showDetail = false">Close</button> 
    </div> 
</div> 

내 변수 showDetail 변경 값을,하지만 내 사업부는 showDetailCell 나타나지 않습니다.

true으로 showDetail의 초기화를 변경하면 버튼을 클릭하면 세부 정보가 나타나지만 사라지지만 셀 클릭은 showDetailCell으로 표시되지 않습니다.

+5

반복되는 각 요소는 자체 범위를 가지므로 $ parent. $ parent.showDetail = true를 시도하십시오. –

+1

ng-repeat는 항상 새 범위를 만듭니다. 따라서이 결과는 @GruffBunny가 이미 대답 한 내용입니다. – doodeec

+0

@GruffBunny It works, thx. – R3tep

답변

1

ng-repeat은 자체 범위를 갖습니다. Javascript 상속으로 인해 부모 객체의 변수가 자식 범위에 할당 될 때마다 새로운 변수가 만들어집니다. 더 이상 상위 객체 변수를 참조하지 않습니다. 범위 변수에 . 표기법을 사용하는 것이 더 좋습니다.

showDetail 대신 detail.toggle을 사용하면 문제를 해결할 수 있습니다.

관련 문제