Ich habe eine Komponente, die einen CartService abonniert, der Einkaufswagenartikel enthält. Was ich tun möchte, ist eine Pipe verwenden, um den Warenkorb Gesamt basierend auf dem Inhalt zu berechnen & den Wert anzeigen.Wie Pipe auf beobachtbare Daten verwenden?
Wie iteriere ich über meine beobachtbaren Daten, um die Summe zu berechnen/zurückzugeben? Gerade jetzt, wenn ich den Wert auslogge, der in meine Pipe geht, gebe ich nur das Observable zurück, nicht die Daten. Was gibt?
//calculateTotal.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
import * as _ from "lodash";
@Pipe({name: 'calculateTotal'})
export class CalculateTotal implements PipeTransform {
transform(items: string): any {
_.each(items, function(item){
console.log(item);
})
return items;
}
}
// nav-cart.component.pug
{{items | calculateTotal}}
//nav-cart.component.ts
import { Component } from '@angular/core';
import { StoreItem } from '../../store.item.interface'
import { CartService } from '../../services/cart.service'
@Component({
selector: 'nav-cart-component',
styleUrls:['nav-cart.component.css'],
templateUrl: 'nav-cart.component.pug',
encapsulation: ViewEncapsulation.Native // Use the native Shadow DOM to encapsulate our CSS
})
export class NavCartComponent {
cartItems:StoreItem[] = [];
items: StoreItem[] ;
constructor(private cartService: CartService) {
cartService.cartList$.subscribe(
res => {
this.items = res;
})
}
}
Kette mit dem 'async' Rohr:' {{Artikel | asynchron | calculateTotal}} '. – cartant