購入するアイテムが表示されたショッピングカートのチェックアウトビューを書いています。angle2のパイプを通過した後のビューの値を更新するには+
*ngFor="let x of shoppingarray"
は、私は、ユーザーに最後の最後で、リストに複数の項目を追加する可能性を与えたい何とか合計は私がアレイと小計を更新していても更新されません。
配列内のオブジェクトに直接影響する数量をインクリメントすることで、配列の小計を更新します。
(component.ts) AddmoreItemsOFThistype(a){ this.shoppingarray[a].qt += 1; }
そしてIは、パラメータとしてインクリメント量でx.qtを与えるパイプを通して各小計を通過させることにより、各小計を再計算します。 (パイプがちょうどx.price * x.qtを乗算)
(component.html) {{x.price|totalPerItem:x.qt}}
問題は、世界全体がフィルターから返された値を更新しないことです。
{{shoppingarray|CalculateTotalpipe}}
CalculateTotalpipeはちょうどループのすべての合計を加算し、全体の配列は、何とか最初の合計がcorrrectですが、小計への変更は有効になりません。
CalculateTotalpipeが更新された合計を生成するようにshoppingarrayを更新する方法はありますか?
もっと良いアプローチがありますか?
ありがとうございます!
コンポーネント内に可変合計がありますか?あなたはあなたのビューで[(ngModel)]とその変数だけをバインドしているのですか? –
私は1つしか持っていますが、私は全体の配列 '{{shoppingarray | CalculateTotalpipe}}'で動作するフィルタからグローバルな合計を直接抽出しているので、ビューのフィルタとどのように組み合わせて使用できますか? 。 '[(ngModel)]をvar totalとフィルタを組み合わせる方法に関する提案はありますか? 。 I –
https://angular.io/guide/pipes#pure-and-impure-pipesをお読みください。パイプは使用しないでください。コンポーネントの通常の方法を使用するか、数量が変更されるたびに合計を事前計算します。 –