这个基于工厂的Angular提供程序有什么问题?

时间:2018-09-19 14:56:58

标签: javascript angular angular5 angular-providers

我正在尝试根据平台类型提供其他提供商

app.module.ts:

const STORAGE = new InjectionToken<StorageInterface>('StorageInterface');

@NgModule({
    providers: [
       {
            provide: STORAGE,
            useFactory: getStorage,
            multi: true,
            deps: [
                PLATFORM_ID
            ]
        },
    ]
});

export function getStorage(platoformId: Object) {
    if (isPlatformServer(platoformId)) {
        return new ServerStorageService();
    }
    return new LocalStorageService();
}

我正在使用STORAGE服务的班级

constructor(@Inject(STORAGE) private storage: StorageInterface){
   console.log(this.storage); // [LocalStorageService] -_-"
}

如何在其他组件/服务中使用该提供程序? 我写错什么了吗?

0 个答案:

没有答案