2016-04-13 21 views
1

NG-Repeat dışında bir NG-Repeat ifadesinin değerini almak ve bir sınıf içinde bir değer olarak kullanmak için çalışıyorum (hala öğreniyorum). Bu NG-Yineleme bölümüdür (basitleştirdim):NG-Tekrarla ifade ifadesi NG-Repeat

Classiccds, JSON'dan aldığım dizidir ve colorcode, içinde bir colomn olup her CD'de farklı bir renk kodu vardır.

<div ng-repeat="cd in cds = (classiccds | limitTo:1)"> 
    <div>{{cd.colorcode;}}</div> 
</div> 

SONUÇ:

ince Yukarıdaki eserler, bu dizide beni ilk cd Colorcode verir ama ayrıca, dizinin dışında, başka bir yerde kullanmak istiyorum #ffffff sayfa arka planı (yalnızca bir satır döndürdüğü için).

<div style="background-color:{{cd.colorcode}}> 
    <div ng-repeat="cd in cds = (classiccds | limitTo:1)"> 
    <div>{{cd.colorcode;}}</div> 
    </div> 
</div> 

cevap

1

Sadece gibi kumanda içinde kapsamı için bu öğeyi ayarlayabilirsiniz:

$scope.cd = classiccds[0]; 

ve uzak ng-repeat kendisi ile almak:

<div style="background-color:{{cd.colorcode}}"> 
    <div> 
    <div>{{cd.colorcode;}}</div> 
    </div> 
</div> 

veya Yapabileceğiniz:

<div style="background-color:{{(classiccds | limitTo:1)[0].colorcode}}"> 
    <div ng-repeat="cd in cds = (classiccds | limitTo:1)"> 
    <div>{{cd.colorcode;}}</div> 
    </div> 
</div> 
+0

bunu evet gerçekten mükemmel –

1

İlk dizideki değer sizin için özellikle yararlıdır, bunu kapsamdaki ayrı bir değişkende saklamanızı öneririm, böylece birden çok konumdan kolayca yeniden kullanabilirsiniz. Böyle bir şey:

function yourCtrl($scope) { 
    $scope.cds = //Your array 
    $scope.interestingColor = $scope.cds[0].colorcode 
} 

Sonra bu gibi html kullanabilirsiniz:

<div style="background-color:{{interestingColor}}> 
    <div ng-repeat="cd in cds = (classiccds | limitTo:1)"> 
    <div>{{cd.colorcode;}}</div> 
    </div> 
</div> 
+0

harika bir fikir çalıştı teşekkür ederim! Ek kapsamı dizinin yanındaki işlevde ekledim. Teşekkür ederim. –