2016-12-08 4 views
-1

Ich verstehe, dass der aktuelle ngrx-Speicher zugegriffen werden kann, indem es in Dinge wie eckige 2 Komponenten injizieren, aber ich muss ein Ereignis von einem separaten Objekt versenden. Viele Kopien des Objekts können im laufenden Betrieb von der Anwendung erstellt werden.Zugriff auf die Apps ngrx Store von neuen Objekt

Zum Beispiel vorausgesetzt, Sie App eingerichtet haben, für die ngrx: Store Readme Beispiel und ich muss auf den Speicher zugreifen und es von so etwas auslösen.

import { Store } from '@ngrx/store'; 

export class RandomObj { 
name: string; 
number: number; 

constructor(name, number) { 
    this.name = name; 
    this.number = number; 
} 

amazingEvent(){ 
    // How to do this sort of thing so the app store will respond? 
    this.store.dispatch({type: 'AMAZING_ACTION', payload: this}); 
} 
} 

Edit:

Was funktioniert, etwas offensichtlich, ist der Laden in RandomObj vorbei, wenn Sie es initialisieren.

Antwort

-1
  1. dies lesen: link
  2. u müssen die RelfectiveInjector verwenden wie:

    var Injektor = RelfectiveInjector. {bereitstellen: Store, useClass: Store} ]);

und im Konstruktor verwenden: @Inject (Store) store

  • nach, dass u das Geschäft überall in Ihrer Klasse verwenden können und scheinen Vermittlungsrufprozessor Hat
+0

nicht es gibt: ORIGINAL EXCEPTION: Kann nicht alle Parameter für 'Store' (?,?,?) auflösen. Stellen Sie sicher, dass alle Parameter mit Inject versehen sind oder gültige Typ-Annotationen haben und dass "Store" mit Injectable dekoriert ist. Also raten Sie, dass Sie die Abhängigkeiten für den Laden wissen müssen, auch etwas besorgt, dass ein neuer Laden erstellt wird, der keinen Zugriff auf den Haupt-App Store bietet. – davidbuttar

+0

Hat dich nicht abgestimmt. Vielleicht hat stackoverflow jetzt schon mal Trolle drauf. – davidbuttar

Verwandte Themen