我知道当前的ngrx存储可以通过将它注入像angular 2组件之类的东西来访问,但是我需要从一个单独的对象中调度一个事件。该应用程序可以动态创建该对象的许多副本。
例如,假设您根据ngrx:store自述文件设置了应用程序,我需要访问商店并从此类触发它。
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});
}
}
编辑:
有些明显的做法是,在初始化时将商店传递给RandomObj。
答案 0 :(得分:-1)
你需要使用RelfectiveInjector,如:
var injector = RelfectiveInjector。 {provide:Store,useClass:Store} ]);
并在构造函数中使用: @Inject(商店)商店