2017-01-10 12 views
1

私はバックエンドからカートデータを取得するために使用するこのカートコンポーネントを持っています。angle2 * ngFor配列から特定の値を取得する

import { Component, OnInit } from '@angular/core'; 

import { CartService } from './cart.service'; 

@Component({ 
    selector: 'cart', 
    templateUrl: './cart.component.html', 
    styleUrls: ['./cart.component.css'] 
}) 

export class CartComponent implements OnInit{ 
    carts: any; 
    cartItems: any; 
    totalPrice: Number; 

    constructor(private _cartService: CartService){}; 

    ngOnInit(){ 
     this.getItems(); 
    } 

    getItems(){ 
     this._cartService.getCartItems(localStorage.getItem('currentUserId')) 
      .subscribe((cart) => { 
       this.cartItems = cart.products; 
       this.totalPrice = cart.totalPrice; 
       this.carts = cart; 
       console.log(this.carts) 
      }, 
      (err) => console.log(err)); 
    } 
} 

これは私のオブジェクト値です。私のコンポーネントやループ、それを図のように、私が使用して私のテンプレートでcartItems内のすべての製品を置く

enter image description here

* ngFor

<tbody *ngFor="let cartItem of cartItems"> 

これは

enter image description here

結果であり、今度は1つのアイテムの数量を更新したいのですが、削除ボタンの横にあるリフレッシュボタンを押してからj私はバックエンドに押されたリフレッシュボタンを持っている製品の詳細をust。

どうすればいいですか?

+0

を使うのか? –

+0

配列からオブジェクトの値を取得する必要があります。例えば、製品Fast、数量を10に更新します、どうすれば* ngFor配列から取得できますか? –

答えて

5

クリックすると、クリック時に呼び出される関数にcartItemが渡されます。今

<tbody> 
    <tr *ngFor="let cartItem of cartItems"> 
     <td>{{cartItem.product}}</td> 
     <td>{{cartItem.size}}</td> 
     <td>{{cartItem.price}}</td> 
     <td>{{cartItem.quantity}}</td> 
     <td>{{cartItem.subtotal}}</td> 
     <td><button (click)="onClick($event, cartItem)">Refresh Button</button></td> 
    </tr> 
</tbody> 

、コンポーネントクラスで動作していない何cartItem

onClick(event, cartItem){ 
    console.log(cartItem); // here your cart item object will be shown 
    // do your stuff here with your cartItem 
} 
+0

$イベントは何ですか? –

+0

ターゲット要素で何かしたいのであれば、関数内で 'event.target'を使うことでそれを行うことができます。将来の使用のために追加されました。しかし、現在、それは何もない –

関連する問題