2017-11-14 5 views
0

私は配列に格納された注文の総額を取得しようとしています。コードは次のようになります。ionic 3でデータを変更した場合、変数の値を自動的に更新するにはどうすればよいですか?

import { Component } from '@angular/core'; 
import { Config } from '../config'; 
var ordersArray = [ 

]; 
@Component({ 
    selector: 'orders-page', 
    templateUrl : 'orders.html' 
}) 

export class Orders{ 
    public orders = ordersArray; 
    public config = new Config; 
    public addOrder(item){ 
    ordersArray.push(item); 
    } 
    public clearOrders(){ 
    var length = this.orders.length; 
    for(let i = 0; i < length; i++){ 
     ordersArray.pop(); 
    } 
    } 
    public total = this.getPrice(); 
    public getPrice(){ 
    let price = 0; 
    for(let order of ordersArray){ 
     price = (parseInt(order.item.price) * parseInt(order.quantity)) + price; 
    } 
    return price; 
    } 
    public clearOrder(order){ 
    for(let i = 0;i < this.orders.length;i++){ 
     if(order.title == this.orders[i].title){ 
     ordersArray.splice(i,1); 
     } 
    } 
    } 
} 

テンプレートとは、{{total}}です。 ordersArrayから要素を削除すると、{{total}}が自動的に更新されます。それ、どうやったら出来るの ?

+0

注文を削除すると、価格を繰り返し計算してthis.priceに設定するだけです。 HTML内の{{価格}}は自動的に更新されます –

+0

ありがとうございました:) –

答えて

0
ordersArrayを更新した後

コールgetPrice()、だから、あなたは毎回priceが懸念しているgetPrice()機能を追加する必要があり、この

public clearOrder(order){ 
    for(let i = 0;i < this.orders.length;i++){ 
     if(order.title == this.orders[i].title){ 
     ordersArray.splice(i,1); 
     } 
    } 
    this.total = this.getPrice(); 
    } 
+0

ありがとうございました!あなたの助けに感謝!! –

1

を試してみてくださいclearOrder()

getPrice()を呼び出します。

public clearOrders(){ 
    ordersArray = ordersArray[]; 
    } 

そして、私が見ることができません:あなたは...あなたはそれらをすべて削除すると、

を一桁を削除し、新しい秩序を、追加したときに例えば は、私はあなたには、いくつかのコードを向上させることができると思いますなぜあなたはpublic orders = ordersArray;を書きましたが、その後はordersArrayを使用しています。

ordersArrayordersordersArray()の機能の中に混ぜているので注意してください。あなたは1つしか使用しないでください。

よろしくお願いいたします。

+0

ありがとうございました:)私はordersArrayのことをしました。なぜなら、クラスの新しいインスタンスが呼び出されたときに影響を受けないように、別の配列に注文を保存していて、ordersArrayにアクセスする必要があります。クラス。私はこれのために混乱するつもりはないと確信しています。 –

関連する問題