我正在尝试根据当前网址重复对象数组中的值。让我们说,当我的网址是这样的时候#34; localhost /#/ scores / javelin"我想重复我的阵列中的标枪分数。
我的数组看起来像这样:
$scope.ppl =
[
{
firstname: 'Donald',
lastname: 'Trump',
from: 'USA',
run100m: ['1s','2s','3s'],
javelin: ['50m','20m','44m']
},
{
firstname: 'Foo',
lastname: 'Bar',
from: 'SWE',
run100m: ['1s','2s','3s'],
javelin: ['80m','10m','54m']
},
];
将有超过15种类型的运动和未知数量的人。我不知道如何在不制作大量阵列的情况下做到这一点。我一直在尝试各种各样的事情,但没有任何办法。
这就是我的重复:
<tr ng-repeat="x in ppl">
<td>{{x.firstname}}</td>
<td>{{x.lastname}}</td>
<td>{{x.from}}</td>
<td><span ng-repeat="y in x.run100m track by $index">{{ y }}</span>
</td>
<td><button>edit</button></td>
</tr>
此代码的工作方式与此类似,但仅适用于run100m。如果我将网址更改为/ javelin,我希望跨度内的标枪分数。
我能做到这一点的唯一方法就是创造
<span ng-show=" URL == javelin"></span>
等。但我不确定这是否如此聪明。所以我的问题是,我如何才能使这项工作变得聪明? ppl结构不一定非如此,但如果我可以将所有信息存储在1个变量中,那就太棒了。
哦,我忘了说我知道如何在控制器内部获取网址。这不是问题所在。
所以我想根据这个变量重复:
var path = $routeParams.sport;
答案 0 :(得分:2)
在表达式中使用属性访问器:
<tr ng-repeat="x in ppl">
<td>{{x.firstname}}</td>
<td>{{x.lastname}}</td>
<td>{{x.from}}</td>
<td><span ng-repeat="y in x[eventType] track by $index">{{ y }}</span>
</td>
<td><button>edit</button></td>
</tr>