Angular ng-repeat变量,用于访问另一个范围对象

时间:2016-02-27 04:48:00

标签: javascript angularjs

我正在尝试使用从ng-repeat获取的变量来访问范围内的对象。

我的模板是:

<tr>
    <td style="font-weight: bold">term</td>
    <td ng-repeat="block in blocks">{{ data.block.term }}</td>
    <td>{{ total.term }}</td>
</tr>

我的范围变量是:

$scope.blocks = ['A', 'B', 'C'];
$scope.data = {'A': {'term': 0, 'term2': 7}, 'B': {'term': 2, 'term2': 3}, 'C': {'term': 5, 'term2': 14}};

3 个答案:

答案 0 :(得分:1)

由于block是一个变量,因此您无法将其用作键,您需要修改为:

<td ng-repeat="block in blocks">{{ data[block].term }}</td>

答案 1 :(得分:1)

var app = angular.module("app",[]);
app.controller("MyCtrl", function($scope){
  $scope.blocks = ['A', 'B', 'C'];
  $scope.data = [{'term': 0, 'term2': 7},  {'term': 2, 'term2': 3}, {'term': 5, 'term2': 14}];
  })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app" ng-controller="MyCtrl">
<table>
<tr>
    <td style="font-weight: bold">term</td>
    <td ng-repeat="block in blocks track by $index">{{ data[$index].term }}</td>
</tr>
  </table>

答案 2 :(得分:0)

你不能像这样使用这个因为数据需要索引你不提供索引块不是索引

你应该使用

 {{ data[block.$index].term }}