フロントエンドのデータを扱う場合、ユーザーにとって理解しやすいデータを視覚化することはしばしば困難です。視覚化する(動的)データは、構造化されてシンプルです(データサイズと過負荷防止に重点を置いています)。HTML/angular2テンプレートエンジンを使用した、angular2での動的データの可視化
ただし、以下のデータ構造(DATA
)は、ユーザーのための最良の視覚的表現ではありません。
私は、次の例を使用して、まだうまく解決できない問題を説明してみましょう:
そして、私は私がメインであるかもしれないEJS
などのようなテンプレートエンジンの観点から来ることをここで指摘してみましょう私は解決する簡単な方法が見つからない理由 - 知らないが...
例:マトリックス表(毎週決議による年に例えばタイムスロット)
ダTA(DATA
):
[
{
name:'Slot 1',
slot:{
start:3,
end:5
}
},
{
name:'Slot 2',
slot:{
start:32,
end:50
}
},
{
name:'Slot 3',
slot:{
start:10,
end:26
}
}
]
可視化:
データとマトリクスtable
にレンダリングされるべき3 rows
及び52の解像度で(データの項目のような多くの行として)週(cells
)/ row
である。そして、その表で範囲(start
- end
)を強調表示する必要があります。 I上述したように
は、他のテンプレートエンジンの視点で来たので、私は、このビジュアライゼーションを取得するには、角度でloops
かそこらを作成する方法を把握してみてください。他のテンプレートエンジンでは、テンプレート内のデータを「解釈」し、2つのloops
にHTML
を作成します。この「オーバーロード」は視覚的な目的にのみ関係するためです。
動的に生成されるマークアップ(EJS
) - 道
<table>
<% var i, weeks=52;
for(i=0;i<DATA.length;i+=1){
%>
<tr>
<td><%-DATA[i].name%></td>
<% var j;
for(j=1;j<=weeks;j+=1){
%>
<td class="<%((j>=DATA[i].slot.start && j<= DATA[i].slot.end)?'in-range':'')%>">
<%- j %>
<td>
<%}%>
</tr>
<%}>
</table>
Qustion:
実は私はAngular 2.x
で効率的な方法と私ができる唯一のソリューションでこれを解決することができないんだけど達成するためには、このようなtable
マトリックスに対してHTML
の全文を書いてください。
これは、HTML
に変更がある場合(例えば、class
程度を追加するなど)、膨大なオーバーヘッドで激しく終了します。私は検索&マークアップで置き換えて知っている;)しかし、生成することができます維持するためにマークアップの多くはまだあり、私はどちらかAngular2でもそれを行う方法があると思う。
私はより良い方向に向いてくれてありがとうございました。
はどうもありがとうございました。私は以前にその "ダミー"配列を使ってアイデアを持っていましたが、それが行く方法ではないと思っていました。私はそのヘルパー関数を見ているところでは、それは実現可能な方法だと思う(行列がもっと複雑になっても、私はhellper関数をどこに置くべきか尋ねてみよう) – Bernhard
私はそれらを共有フォルダ( 'src/app/shared/shared.utils.ts') – Sasxa