2016-06-30 4 views
0

以下のテンプレートで表示したいオブジェクトがあります。誰もがこれで私を導くことができますか?私はそれを簡単かつ迅速に最適化したい。anglejsに複合htmlテーブルとしてオブジェクトを表示するには

ありがとうございました。

オブジェクト:

var dataSource = [ 
    { 
     Id: 5, 
     CriteriaName: 'First Criteria', 
     CustomerName: 'Customer-1', 
     Points: 350, Total: 500 
    }, 
    { 
     Id: 5, 
     CriteriaName: 'First Criteria', 
     CustomerName: 'Customer-2', 
     Points: 250, 
     Total: 500 
    }, 
    { 
     Id: 5, 
     CriteriaName: 'First Criteria', 
     CustomerName: 'Customer-3', 
     Points:150, 
     Total: 500 
    }, 
    { 
     Id: 5, 
     CriteriaName: 'Second Criteria', 
     CustomerName: 'Customer-1', 
     Points:400, 
     Total: 450 
    }, 
    { 
     Id: 5, 
     CriteriaName: 'Second Criteria', 
     CustomerName: 'Customer-2', 
     Points: 300, 
     Total: 450 
    }, 
    { 
     Id: 5, 
     CriteriaName: 'Second Criteria', 
     CustomerName: 'Customer-3', 
     Points:200, 
     Total: 450 
    } 
]; 

所望の出力は次のようになります

jsfiddle

https://jsfiddle.net/7L79dryr/1/

+0

ヘッダーは静的なので、常に4ヒアズですか? (合計、cutomer-1、cutomer-2、cutomer-3)? –

+0

いいえ別個のCustomerNameとなり、合計 –

+0

** CriteriaName **でグループ化する必要があるようです。 – Anson

答えて

2

私はちょうど1

最初に利用可能なを使用し、異なるデータ構造にこれをマップする必要があるだけでなく、顧客の配列

<table class='tbl'> 
    <thead> 
    <tr> 
     <th></th> 
     <th>total</th> 
     <th ng-repeat="customer in customers">{{customer}}</th>   
    </tr> 
    </thead> 
    <tbody> 
    <tr ng-repeat='(name, data) in criteria'> 
     <td>{{name}}</td> 
     <td>{{data.Total}}</td> 
     <td ng-repeat="customer in customers"> 
      {{data[customer] ? data[customer] : 'N/A' }} 
     </td> 
    </tr> 
    </tbody> 
    </table> 

JS

var customers = {}, 
    criteria = {}; 

data.forEach(function(item){ 
    customers[item.CustomerName]=true; 
    if(!criteria[item.CriteriaName]){ 
     criteria[item.CriteriaName]= {Total:item.Total} 
    } 
    criteria[item.CriteriaName][item.CustomerName] = item.Points; 
}); 

$scope.customers = Object.keys(customers).sort(); 
$scope.criteria = criteria; 

ないTotalがどのように動作するかを確認してください

DEMO

+0

私のために働かない、私はまた、サーバーにデータを投稿したいので、 –

+0

それはどのような違いがありますか? – charlietfl

+0

オブジェクトdoestがTotalPoints列を持っています –

関連する問題