Я не могу получить доступ к свойствам, определенным в моем классе модели, из службы service.ts, создав объект этого класса - PullRequest
0 голосов
/ 20 ноября 2018

Здесь x не может получить доступ к свойствам ShoppingCart ошибка, которую он показывает: элемент свойства не существует для типа {} Я не знаю, где произошла ошибка, которую я не смог определить

торговые-cart.service.ts

  async getCart(): Promise<Observable<ShoppingCart>> {
    let cartId = await this.getOrCreateCartId();
    return this.db.object('/shopping-carts/' + cartId)
    .valueChanges()
    .pipe(
      map(x => new ShoppingCart(x.items))

    );
  }


**ShoppingCart.ts**

import { Product } from './product';
import { ShoppingCartItem } from "./shopping-cart-item";

export class ShoppingCart {

    items: ShoppingCartItem[] = [];


    constructor(private itemsMap: { [productId: string]: ShoppingCartItem }) {
        this.itemsMap = itemsMap || {};

        for (let productId in itemsMap) {

            //we explicitly map each of the object to shoppingCart object 
            let item = itemsMap[productId];

            this.items.push(new ShoppingCartItem({
                // title: item.title,
                // imageUrl: item.imageUrl,
                // price: item.price,
                ...item,
                key: productId
            }));

        }
    }

1 Ответ

0 голосов
/ 13 марта 2019

Если у вас все еще есть эта проблема, то это может помочь ...

async getCart(): Promise<Observable<ShoppingCart>> {
const cartId = await this.getOrCreateCartId();
return this.db.object('/shopping-cart/' + cartId).snapshotChanges()
.pipe(map(x => new ShoppingCart(x.payload.exportVal().items)));
}
...