이것은 Rails API가있는 간단한 장바구니 애플리케이션입니다. 내 ShowComponent에 addToCart 버튼과 CartComponent가있는 항목이 있습니다. 나는 Cart 기능을 가진 CartService를 가지고있다. 내가 항목과 모든 작업의 벌금을 (나는 결과의 모든 데이터와 개체가) 추가 내 show.component.html에 addToCart와 기능을 사용각도 2로 서비스에서 데이터를 가져올 수 없습니다.
import {Injectable} from '@angular/core';
import {Item} from './cart/cart';
@Injectable()
export class CartService {
private cartItems:Item[] = [];
constructor() {}
getCart() {
return this.cartItems;
}
addToCart(pizza, qtyString:string = "1") {
let qty = Number(qtyString);
console.log(typeof qty, qty);
console.log(typeof pizza, pizza);
if (this.cartItems.length == 0) {
this.cartItems.push(new Item(pizza['title'], pizza['price'], qty));
console.log(this.cartItems);
} else {
for(let i = 0; i < this.cartItems.length; i++) {
if (this.cartItems[i].title == pizza.title) {
console.log(this.cartItems[i].qty);
this.cartItems[i].qty += qty;
return true;
};
}
this.cartItems.push(new Item(pizza.title, pizza.price, qty));
}
}
deleteItems(pizza) {
this.cartItems.splice(this.cartItems.indexOf(pizza), 1);
}
editItems(value, i) {
this.cartItems[i].qty = +value;
}
}
: 여기 내 cart.service입니다. 그러나 장바구니로 이동하려고 할 때이 데이터를 가져올 수 없습니다 (this.cartItems.length == 0). 여기 내 CartComponent은 다음과 같습니다
여기import {Component, OnInit} from '@angular/core';
import {CartService} from '../cart.service';
import {Pizza} from '../pizza';
import {Item} from './cart';
import {Router} from '@angular/router';
@Component({
moduleId: module.id,
selector: 'app-cart',
templateUrl: 'cart.component.html',
styleUrls: ['cart.component.css']
})
export class CartComponent implements OnInit {
cartItems = [];
constructor(private cartService: CartService, private router: Router) {}
ngOnInit() {
this.cartItems = this.cartService.getCart();
console.log(this.cartItems.length);
}
getTotalPrice() {
let total = 0;
this.cartItems.forEach((pizza: any, i:number) => {
total += pizza.price * pizza.qty;
})
return total;
}
}
내 아이템 모델 :
export class Item {
constructor(public title:string, public price:number, public qty:number) {}
}
내가 그걸 얻기 위해 어떻게해야이? 감사합니다
답장을 보내 주셔서 감사합니다. 공급자는 AppComponent에 추가 :'수입 {CartService} './cart.service'에서, ' '@Component ({ 제공 : [PizzaService, CartService]을 })' '수출 클래스 AppComponent {}' – Ujin