WIP:So macht's mehr Sinn...
[examples/angular-tour-of-heroes] / src / app / vorgang / vorgang.component.ts
1 import { Component, OnInit } from '@angular/core';
2 import { VorgangService } from '../vorgang.service';
3 import { Vorgang } from '../vorgang';
4 import { Store, select } from '@ngrx/store';
5 import { Observable } from 'rxjs';
6 import { create } from '../actions/vorgang';
7 import { tap, map } from 'rxjs/operators';
8 import { State } from '../reducers/vorgang';
9
10 @Component({
11   selector: 'app-vorgang',
12   templateUrl: './vorgang.component.html',
13   styleUrls: ['./vorgang.component.css']
14 })
15 export class VorgangComponent implements OnInit {
16
17   vorgang$: Observable<Vorgang[]>;
18
19   constructor(
20       private service: VorgangService,
21       private store: Store<{ vorgang: { vorgaenge: Vorgang[] }}>) {
22     this.vorgang$ = store.pipe(select('vorgang')).pipe(
23       tap((state) => console.log(`New state: ${JSON.stringify(state)}`)),
24       map((state: State) => state.vorgaenge));
25   }
26
27   ngOnInit(): void {
28   }
29
30   create(data: string) {
31     this
32       .service
33       .create({ vbId: 'peter', vorgangId: '1' , zustand: data })
34       .subscribe(result => this.store.dispatch(create( { vorgang: result })));
35   }
36 }