2016-04-05 20 views
0

Aşağıdaki kodu var: Aşağıdagizle görüntü ng-tekrarında madde son ise

<li class="child-item" role="menuitem" ng-show="isSubMenu" ng-repeat="sublink in subLinks" ng-class="{'last' : $last && setLastElemFlag($last) || false}" ng-click="stopPropagation()"> 
    <img id="child-item-bullet" /><span class="sub-child-span">{{sublink.name}}</span> 
    <img id="child-dotted-lines-bottom" ng-hide="isLastElement"/> 
    <img id="child-dotted-lines-bottom-2" ng-hide="isLastElement" /> 
</li> 

benim setLastElemFlag fonksiyonudur: Ne yapmaya çalışıyorum olduğunu

$scope.setLastElemFlag = function (value) { 
    alert(value); 
    $scope.isLastElement = value; 
} 

İstiyorum ng-repeat öğesinin sonuncusu olduğunda, çocuk noktalı çizgi-alt-alt-çocuk-noktalı-çizgiler-alt-2'yi gizleyin. Ancak sadece son çifti saklamak yerine, yukarıdaki kod görüntünün tüm örneklerini gizler.

Expected output

ancak bunun yerine bu var:

wrong output

benim koduyla sorun nedir

bu ben ulaşmak istediğim şey, daha net şeyler yapmak için mi?

Teşekkürler.

cevap

2

$last kullanarak, bunu böyle deneyin: İşte

<li class="child-item" role="menuitem" ng-show="isSubMenu" ng-repeat="sublink in subLinks" ng-class="{'last' : $last && setLastElemFlag($last) || false}" ng-click="stopPropagation()"> 
    <img id="child-item-bullet" /><span class="sub-child-span">{{sublink.name}}</span> 
    <img id="child-dotted-lines-bottom" ng-hide="$last"/> 
    <img id="child-dotted-lines-bottom-2" ng-hide="$last" /> 
</li> 

docs bulunmaktadır.

+0

Teşekkür ederiz! İstendiği gibi çalışıyor. Artık herhangi bir amaca hizmet etmediği için işleve referansları kaldırdım. Bunu bir süre cevap olarak işaretleyecektir. : D –