0
私はこれに対する解決策を見つけるのに苦労しています。角度2のモデルフィールドの簡単な数学
私は以下のモデルを持っており、サービスを通じて約束しています。
export class Something {
id: number;
someTime: string;
items: [
{
id: number;
description: string;
unit: string;
portion: number;
std: number;
}
]
}
それはモックデータを有する:
const SOMETHINGS: Something[] = [
{
id: 0,
someTime: 'Now',
items: [
{
id: 0,
description: 'A',
unit: 'ml',
portion: 275,
std: 64
},
{
id: 1,
description: 'B',
unit: 'g',
portion: 50,
std: 378
},
....
]
}
]
実際の値は無関係であるが、私は各部分とstd値にアクセスする必要があります。それらを掛け合わせて、最後にそれらを合計する。そのよう
:
275 * 64 = 17600
50 * 378 = 18900
total = 36500
私のコンポーネント内の私はそうのようなローカル配列に返されたデータを割り当てました。
something: Something[] = [];
constructor(private somethingService: SomethingService) {}
ngOnInit(){
this.getSomething();
}
getSomething(){
this.somethingService.getSomething().then(something => this.something = something);
}
私は* ngFor型アプローチを使用することはできませんので、この値は私のテンプレートの繰り返しセクション内ではありません。私は単純に各項目と抽出液にアクセスする方法がわからない
calcTotal(){
let totals:array<Number>;
let gross:number = 0;
this.something.forEach((items) => total.push(items.portion * items.std));
totals.forEach((total:number) => gross += total));
return {
total: totals;
}
}
しかし、これは動作しません..:
のようなものを使用して論理的と思われます2つの値を乗算し、後で次のペアを抽出するなどして保存します。最後にすべての結果をまとめ、それらを合計してビューに渡します。
ご協力いただければ幸いです。
スティーブ
ご回答ありがとうございます。 2つのポイント - 私は私のサービスでプロミスを使用しています。私はサブスクライブメソッドに慣れていないので、あなたのメソッドは何も返されないようです。私はここで何かを見逃していますか? – Steve
上記を忘れて、類似の数学的演算子のユーティリティクラス内でcalculateValuesメソッドを使用しました。 – Steve