NG-重复之外的NG重复表达值

时间:2016-04-13 10:33:59

标签: html angularjs angularjs-ng-repeat

我正在尝试(仍在学习)在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>

2 个答案:

答案 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>