2017-05-04 6 views
-1

내가하려는 것은 아코디언과 비슷합니다.

간단한 내가 한 번 다른 사업부가 NG 쇼 내 안에 중첩 "Printpanel"라는 쇼를 클릭하신 <a> 태그와 함께 NG 반복이 을 넣어.

사용자가 다른 <a> 태그를 클릭하면 이전에 표시된 다른 모든 div를 숨기고 관련된 하나만 열려고합니다.

$ index를 사용하여 특정 div를 트리거합니다. 내가 무슨 짓을 여기

:

는 그 NG 숨기기가 인식되지 않는 것 같습니다
<div ng-repeat="product in $ctrl.Products"> 
    <a href="#" ng-click="showDetails = $index;>CONFIGURE</a> 


<div class="Printpanel ng-hide" ng-show="showDetails == $index" ng-hide="showDetails != $index"> 
</div> 

... 누구는 아이디어가?

답변

0

당신은 ng-if도 사용할 수 있습니다

<div class="Printpanel" ng-if="showDetails == $index"> 

편집 :

인해 범위 상속 문제로, 당신은 showDetails 변수를 설정할 수 없습니다. 이를 위해서는 $parent을 사용하십시오.

작업 예 : 당신은 NG 쇼/ng-를 사용해야 하나의 또한

중 하나

<div ng-repeat="product in $ctrl.Products"> 
    <a href="#" ng-click="$parent.showDetails = $index">CONFIGURE</a> 
    <div class="Printpanel" ng-if="$parent.showDetails == $index"> </div> 
</div> 
+0

downvote ..? –

+0

몰랐 이유 .. . 어쨌든 광고에 감사드립니다. 부사장,하지만 문제는 여전히 남아있다, 나는 다른 모든 div를 제거하고 싶습니다. –

+0

이것은 각도 범위 상속의 문제로 표기법으로 컨트롤러로 사용됩니다. 뷰 모달 객체를 사용하여'showDetails' 변수에 접근합니다. –

1

ngShow + ngHide을 사용할 필요가 없습니다. 하나이면 충분합니다.

<div class="Printpanel ng-hide" ng-show="showDetails == $index"> 
+0

좋아, 난 단지 이해하려고 노력하고, 감사합니다. 하지만 내 문제는 여전히 남아있다가, 다른 모든 Printpanel div를 여전히 볼 수 있습니다 –

0

당신이 여기 닫는 큰 따옴표로 놓친 것 같다 = "showDetails = $ 인덱스를 겨 클릭/숨기기 NG-IF = 표현