Angular には、次の単純なモデルがあります。
$scope.rdata = [
{1: 7, 2: 23,3: 9, 4: 13,5: 32},
{1: 23, 2: 8,3: 67, 4: 11,5: 6},
{1: 35, 2: 12,3: 24, 4: 17,5: 24},
];
ng-repeat を使用して html でレンダリングします。
<table>
<thead>
<p>Example of xy data rendered</p>
</thead>
<tbody>
<tr ng-repeat="row in rdata">
<td ng-repeat="c in col">
<div>{{row[c]}}</div>
</td>
<td>
<input type="range" id="example" min="0" max="1" step="0.01">
</td>
<td><div>
Value compiled: {result of input range value * value in row[c]}
</div></td>
</tr>
</tbody>
</table>
基本的に、同じ行の入力範囲値と同じ行の最後の列の値の積として、最後の div (コンパイルされた値が書き込まれる場所) の最後の div に表示される値をバインドしたいと思います。可能であれば、列 x と行 y にある値を参照し、それを操作したり、式などに入れたりする方法があるかどうかを理解したいと思います...別の角度モデルを構築する必要はありません。
私が達成しようとしていることが十分に明確であるかどうか教えてください。
編集:私のデータはもう少しこのようなものです:
$scope.financials2 = [ { '2011': 98, '2012': 97, '2013': 100, name: 'Sales' },
{ '2011': -5, '2012': -6, '2013': -7, name: 'Costs of Goods Sold' },
{ '2011': 93, '2012': 91, '2013': 93, name: 'Gross Profit' },
{ '2011': -37, '2012': -36, '2013': -35, name: 'Operating Expenses' },
{ '2011': 54, '2012': 55, '2013': 58, name: 'Operating income' } ]
データのフォーマットを再構築する必要があるかもしれません。アイデアは行ごとにあり、売上高、総利益などの概念を示し、値は年ごとにグループ化された列に表示されます
したがって、中間段階は次のようになります。
Concept 2011 2012 2013
Sales 98 97 100
Cost of Goods Sold -5 -6 -7
Gross Profit 93 91 93
アイデアは、2つの列を追加したいということです。
- 行ごとにスライダー (入力範囲) があり、成長率を示しているため、基本的に入力範囲は -0.05 から +0.05 です。
- 2014 年の予測を示す別の列: 2014 年の売上 = 2013 年の売上 * (1 + スライダーの値)、2014 年の総利益 = 2013 年の総利益 * (1 + スライダーの値)
そのため、2 つの追加の列があり、最初の列にはすべての行のスライダーが含まれ、2 番目の列には 2013 列にスライダーの値を掛けた結果が表示されます。それが今より明確であることを願っています。