假设我有2个收藏品
var products = [{Name : "p1", Id : 1}, {Name : "p2", id : 2}];
var locSales = [
{LocName : "Loc1", Sales : [{Id : 1, Value : 23}, {Id : 2, Value : 54}]}
{LocName : "Loc2", Sales : [{Id : 1, Value : 78}, {Id : 2, Value : 90}]}
];
我将它们绑定到控制器范围
$scope.products = products;
$scope.locSales = sales;
我想用这个数据创建一个表格,结构如下
Loc Name | P1 | P2
Loc1 | 23 | 54
Loc2 | 78 | 90
要做到这一点,我现在正在做的是改变 locSales的sales属性为以下结构
var locSales = [
{LocName : "Loc1", Sales : {"1" : 23, "2" : 54}}
{LocName : "Loc2", Sales : {"1" : 78, "2" : 90}}
];
这样我就可以绑定到像这样的特定id
<table>
<tr >
<td>Loc name</td>
<td ng-repeat="p in products">{{p.Name}}</td>
</tr>
<tr ng-repeat="s in locSales">
<td>{{s.LocName}}</td>
<td ng-repeat="p in products">
{{s.Sales[p.Id]}}
</td>
</tr>
<table>
是否有更好的方法在角度js中使用其他方式实现此目的。
我需要绑定到集合中特定Id的元素
我在这里描述的过程是重复的,消耗资源加上剂量看起来很好。
答案 0 :(得分:0)
假设您可以执行products
和locSales.Sales
的数组顺序相同:
<tr ng-repeat="s in locSales">
<td>{{s.LocName}}</td>
<td ng-repeat="sale in s.Sales">
{{sale.Value}}
</td>
</tr>
的 DEMO 强>