我正在尝试(仍在学习)在NG-Repeat之外获取NG-Repeat表达式的值,并将其用作类中的值。这是NG-Repeat部分(我简化了它):
Classiccds是我从JSON获得的数组,颜色代码是里面的colomn,每个cd都有不同的颜色代码。
<div ng-repeat="cd in cds = (classiccds | limitTo:1)">
<div>{{cd.colorcode;}}</div>
</div>
结果:#ffffff
以上工作正常,它返回数组中第一张cd的颜色代码 但我也想在页面背景上的数组之外的其他地方使用它(因为它只返回一行)。
<div style="background-color:{{cd.colorcode}}>
<div ng-repeat="cd in cds = (classiccds | limitTo:1)">
<div>{{cd.colorcode;}}</div>
</div>
</div>
答案 0 :(得分:1)
您只需将此项目设置为控制器中的范围,例如:
$scope.cd = classiccds[0];
并躲开ng-repeat
本身:
<div style="background-color:{{cd.colorcode}}">
<div>
<div>{{cd.colorcode;}}</div>
</div>
</div>
或者你可以这样做:
<div style="background-color:{{(classiccds | limitTo:1)[0].colorcode}}">
<div ng-repeat="cd in cds = (classiccds | limitTo:1)">
<div>{{cd.colorcode;}}</div>
</div>
</div>
答案 1 :(得分:1)
如果数组中的第一个值对您特别有用,我建议您将其存储在作用域的单独变量中,以便您可以从多个位置轻松地重用它。像这样:
function yourCtrl($scope) {
$scope.cds = //Your array
$scope.interestingColor = $scope.cds[0].colorcode
}
然后你可以在你的html中使用它:
<div style="background-color:{{interestingColor}}>
<div ng-repeat="cd in cds = (classiccds | limitTo:1)">
<div>{{cd.colorcode;}}</div>
</div>
</div>