2016-12-16 92 views
1

我使用ng-repeat來綁定來自指令的圖像(與我們通常製作星星評分相同)。在我的情況下,我有圖像,其中一些應該有標題,而不是全部。有沒有辦法制定一個條件,只會顯示第二張和最後一張圖片的標題?沒有對所有圖像Angular ng-repeat images with caption only for 2 of the

我的HTML創建一個數組:

<ul class="qty"> 
<li ng-repeat="image in imagesArray"> 
    <img ng-model="imgUrl" ng-src="{{imgUrl}}"> 
    <div>caption</div> 
</li> 

我的應用程序:

var myDirectives = (function() { 
var myDirectives = angular.module('myDirectives', []); 
myDirectives.directive('myImages', function() { 
    return { 
     restrict: 'A', 
     scope: { 
      qty: '=' 
     }, 
     link: function ($scope) { 
      $scope.imgUrl = "http://farm6.staticflickr.com/5579/14671096893_806ec359b7_m.jpg"; 
      $scope.imagesArray = []; 
      for (var i = 0; i < $scope.qty; i++) { 
       $scope.imagesArray.push({}); 
      } 
     }, 
     templateUrl: function() { return 'stars.html' }, 
    } 
}); 
return myDirectives; }()); 

Plunkr: http://plnkr.co/edit/IdXaRDB9INZlZbWSTmam?p=preview

回答

1

是的,您可以使用$ last和$ first。

有關詳細信息,請參閱ngRepeat文檔。

<ul class="qty"> 
<li ng-repeat="image in imagesArray"> 
    <img ng-model="imgUrl" ng-src="{{imgUrl}}"> 
    <div ng-if="$first || $last">caption</div> 
</li> 
+0

我明白了!我只是錯過了研究ng-repeat的屬性。現在更清楚了。將與它一起玩。謝謝! – Natalya

1

完成,請參閱我的答案。它工作正常

<ul class="qty"> 
    <li ng-repeat="image in imagesArray track by $index"> 
     <img ng-model="imgUrl" ng-src="{{imgUrl}}"> 
     <div ng-if="$index===1 || $last">caption</div> 
    </li> 
</ul> 
+0

啊!不記得是否$ index是從零開始的:-) –

+0

當然它是基於零的。你可以使用'$ index ===「imagesArray.length-1」'而不是'$ last'。 –

+0

謝謝!邏輯就是一切)))現在可以用不同的方式使用它 – Natalya