テーブルのヘッダー行を設定するために使用する年の配列があり、テーブルを作成するために使用するオブジェクトがあります。 対応する年ヘッダの下に正しい年データを設定する必要があるので、オブジェクトの年(Y)がヘッダ配列の年に対応するかどうかを確認する必要があります。空のセル。オブジェクトは年ごとにソートされます。それを行う最善の方法は何でしょうか?ここ は、私はDOMテーブルをng-repeatで読み込み、一致するヘッダーデータを確認する
<table border="1" data-ng-app="testModule" data-ng-controller="testController">
<thead>
<tr>
<th ng-repeat="i in headerYears">{{i}}</th>
</tr>
</thead>
<tbody>
<tr >
<td ng-repeat="i in headerYears" >{{i}}
<span ng-repeat="row in rows"></span>
<span ng-repeat="item in row.Col">{{item.Y}} </span>
</td>
</tr>
</tbody>
</table>
でNG-IFを行うだろうfiddle
CONTROLLER
var app = angular.module("testModule", []);
app.controller('testController', function($scope) {
$scope.headerYears = [2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019, 2020];
$scope.rows = [{
"Name": "Name1",
"Col": [{
"Y": 2013,
"M": 25711
}, {
"Y": 2014,
"M": 26095
}, {
"Y": 2015,
"M": 23641
}, {
"Y": 2016,
"M": 22224
}, {
"Y": 2017,
"M": 21968
}, {
"Y": 2018,
"M": 23820
}, {
"Y": 2019,
"M": 26673
}, {
"Y": 2020,
"M": 29329.5
}]
}, {
"Name": "Name2",
"Col": [{
"Y": 2013,
"M": 83
}, {
"Y": 2014,
"M": 461
}, {
"Y": 2015,
"M": 1067
}, {
"Y": 2016,
"M": 1120
}, {
"Y": 2017,
"M": 1050
}, {
"Y": 2018,
"M": 600
}, {
"Y": 2019,
"M": 475
}, {
"Y": 2020,
"M": 481
}]
}, {
"Name": "Name3",
"Col": [{
"Y": 2013,
"M": 25794
}, {
"Y": 2014,
"M": 26556
}, {
"Y": 2015,
"M": 24708
}, {
"Y": 2016,
"M": 23424
}, {
"Y": 2017,
"M": 23297
}, {
"Y": 2018,
"M": 24412.5
}, {
"Y": 2019,
"M": 27090.5
}, {
"Y": 2020,
"M": 29754.5
}]
}]
});
HTML
<table border="1" data-ng-app="testModule" data-ng-controller="testController">
<thead>
<tr>
<th ng-repeat="i in headerYears">{{i}}</th>
</tr>
</thead>
<tbody>
<tr ng-repeat="row in rows">
<td ng-repeat="item in row.Col">{{item.M}}{{item.Y}}</td>
</tr>
</tbody>
私によると、あなたは 'headerYears'に応じてすべての'行Col'データを同期するように、アプリケーション・ロジックのコードを書く必要があります。 – sreeramu