【发布时间】:2016-10-15 03:16:05
【问题描述】:
我正在尝试根据当前 url 从对象数组中重复值。假设当我的 url 是“localhost/#/scores/javelin”时,我只想从我的数组中重复 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。如果我将 url 更改为 /javelin,我希望标枪得分在 span 内。
我能做到这一点的唯一方法就是我创造
<span ng-show=" URL == javelin"></span>
等等。但我不确定这是否如此聪明。所以我的问题是我怎样才能使这项工作变得聪明? ppl 结构不必是那样,但如果我可以将所有信息存储在 1 个变量中,那就太好了。
哦,我忘了说我知道如何在控制器中获取 url。这不是这里的问题。
所以我想根据这个变量重复:
var path = $routeParams.sport;
【问题讨论】:
-
所有关于为每个级别使用一致的属性名称和值类型。运动的名称不应该是键,它应该是更通用的值,例如
sport:'javelin'
标签: javascript angularjs arrays angularjs-ng-repeat