【问题标题】:Injecting parameters at the bootstrap module在引导模块中注入参数
【发布时间】:2016-09-05 19:00:50
【问题描述】:

我有这样的事情:

@NgModule({
    imports: [ BrowserModule ],
    declarations: [ LoaderComponent ],
    bootstrap: [ LoaderComponent ],
})
export class AppModule {
    constructor( private params : BootstrapParams  ) {
    }
}

export class BootstrapParams {
    public urlParam : String;
    constructor(screenUrl : String) {
        this.urlParam = screenUrl
    }
}

从我的 main.ts 我有:

export function main(screenUrl) {
    platformBrowserDynamic().bootstrapModule(AppModule, {providers: [ { provide :  BootstrapParams, useFactory: () => new BootstrapParams("/bla/bla") }]});
}

但这是在扔

"Can't resolve all parameters for AppModule: (?).(…)"

而且我不明白我做错了什么,我已经阅读了所有文档,但是将数据传递到根模块的示例并不多。

【问题讨论】:

    标签: angular module bootstrapping


    【解决方案1】:

    好的,我自己回答,问题似乎在于在与 AppModule 相同的文件中声明 BootstrapParams。它可以在同一个文件中,但必须在之前声明。喜欢:

    export class BootstrapParams {
        public urlParam : String;
        constructor(screenUrl : String) {
            this.urlParam = screenUrl
        }
    }
    
    @NgModule({
        imports: [ BrowserModule ],
        declarations: [ LoaderComponent ],
        bootstrap: [ LoaderComponent ],
        providers: [ { provide :  BootstrapParams, useFactory: () => new BootstrapParams("/bla/bla") }]
    
    })
    export class AppModule {
        constructor( private params : BootstrapParams  ) {
        }
    }
    

    【讨论】:

    • 你之前有什么,BootstrapParamsAppModule 之后有什么?问题似乎类似于this question
    • 是的,这是同样的问题。感谢您的帮助!
    猜你喜欢
    • 2014-07-26
    • 2018-05-18
    • 2019-05-05
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多