如何在我的代码中使用$ index来迭代套件号?
我尝试了以下内容:
<tr ng-repeat="spec in results track by $index">
<td> {{$index + 1}} </td>
<td>{{ spec[('suite'+$index)].id }}</td>
<!-- <td>{{ spec[('suite'+$index+1)].id }}</td> -->
</tr>
.......
[
{
"suite1": {
},
"timestamp": "2017-04-27T12:30:53.051Z"
}, {
"suite2": {
},
"timestamp": "2017-04-27T12:42:24.227Z"
}, {
"suite3": {
}
"timestamp": "2017-04-27T12:49:42.070Z"
}, {
"suite3": {
},
"timestamp": "2017-04-28T04:18:51.585Z"
}
]
出于某种原因,它仅适用于第一次迭代。它只迭代套件1,就是这样。 如果我明确要求{{spec ['suite3']。id}}它会迭代,并显示所有“suite3”项。
我必须在这里做错事,我无法弄清楚它是什么。
答案 0 :(得分:0)
这是因为你的数组中只有一个对象,即$scope.results
,即它的长度为1,所以它循环只会迭代一次。因此$index
值始终为0.
使用(key, value) in ng-repeat
这样就可以了。
答案 1 :(得分:0)
你需要像这样使用,
<td>{{ spec[('suite'+($index+1))].id }}</td>
<强>样本强>
angular.module('app', [])
.controller('Controller', function ($scope) {
$scope.results= [
{
"suite1": {
"id":1
},
"timestamp": "2017-04-27T12:30:53.051Z"
}, {
"suite2": {
"id":2
},
"timestamp": "2017-04-27T12:42:24.227Z"
}, {
"suite3": {
},
"timestamp": "2017-04-27T12:49:42.070Z"
}, {
"suite3": {
},
"timestamp": "2017-04-28T04:18:51.585Z"
}
];
});
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title></title>
</head>
<body ng-app="app">
<div ng-controller="Controller">
<table border='1'>
<tr ng-repeat="spec in results track by $index">
<td> {{$index + 1}} </td>
<td>{{ spec[('suite'+($index+1))].id }}</td>
</tr>
</table>
</div>
<script type=" text/javascript " src="//ajax.googleapis.com/ajax/libs/angularjs/1.3.6/angular.js ">
</script>
</body>
</html>
答案 2 :(得分:0)
请尝试以下代码:
<tr ng-repeat="spec in results track by $index">
<td> {{$index + 1}} </td>
<td>{{ spec['suite'+($index+1)].id }}</td>
</tr>