Javascript 使用forRoot将变量传递给模块

Javascript 使用forRoot将变量传递给模块,javascript,angular,typescript,redux,Javascript,Angular,Typescript,Redux,我已经开发了一个库,其中包含Angular中的共享组件,我想在那里传递配置 一切基本上与中的相同: 问题是,我需要将用户传递给这个模块,这个模块在应用程序启动时获取并保存在Redux状态 在导入模块时,是否可以使用forRoot向用户传递observable?也许可以“稍后”通过一些延迟加载将某些内容传递给此模块 @select() private user$: Observable<User> @NgModule({ imports: [ LibModule.for

我已经开发了一个库,其中包含Angular中的共享组件,我想在那里传递配置

一切基本上与中的相同:

问题是,我需要将用户传递给这个模块,这个模块在应用程序启动时获取并保存在Redux状态

在导入模块时,是否可以使用forRoot向用户传递observable?也许可以“稍后”通过一些延迟加载将某些内容传递给此模块

@select() private user$: Observable<User>

@NgModule({
  imports: [
    LibModule.forRoot({
      user: user$
    })
...
})
@select()私有用户$:可观察
@NGD模块({
进口:[
LibModule.forRoot({
用户:用户$
})
...
})

我采用了另一种方式——注入抽象服务的实现来获取设置。代码如下:

Lib模块声明:

export interface LibSettings {
  user: User;
  url: string;
}

export abstract class AbstractLibSettingsService {
  abstract getSettings(): LibSettings;
}

@NgModule({
  declarations: [...],
  imports: [...],
  exports: [...]
})
export class LibModule {

  static forRoot(implementationProvider: Provider): ModuleWithProviders {
    return {
      ngModule: LibModule,
      providers: [
        implementationProvider
      ]
    }
  }
}
Lib服务,其中我需要用户:

constructor(private settingsService: AbstractGlassLibSettingsService) {
}
在使用库的应用程序中,带导入的模块声明:

export const LIB_SETTINGS_PROVIDER: ClassProvider = {
    provide: AbstractLibSettingsService,
    useClass: LibSettingsService
};

@NgModule({
    imports: [...
        LibModule.forRoot(LIB_SETTINGS_PROVIDER)
    ],
...
})
最后,应用程序中服务的实现:

@Injectable()
export class LibSettingsService extends AbstractLibSettingsService {

    @select() private user$: Observable<User>;
    private user: User;

    constructor() {
        super();
        this.user$.subscribe(user => this.user = user);
    }

    public getSettings(): GlassLibSettings {
         ...
    }
@Injectable()
导出类LibSettingsService扩展了AbstractLibSettingsService{
@select()private user$:可观察;
私人用户:用户;
构造函数(){
超级();
this.user$.subscribe(user=>this.user=user);
}
public getSettings():GlassLibSettings{
...
}

在哪里可以找到解决方案的文档?我很感兴趣的是,我可以在
static forRoot
函数中返回
imports
。恐怕我不理解你的问题……你能重新表述一下吗?老实说,我想我只是在尝试并想出了这个解决方案。在昨天下午之后,我已经理解了str现在我知道这毫无意义,我很抱歉,杰