我创建了一个服务,我希望在这个服务中共享数据,所以我在一些教程中发现我必须在我的应用程序的appmodule中引导服务,以确保这只是该服务的一个实例:
@NgModule({
declarations: [
AppComponent,
ProfileComponent,
TestComponent,
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
SlimLoadingBarModule.forRoot(),
FormWizardModule
],
exports: [BrowserModule, SlimLoadingBarModule],
providers: [UserResolverService,SessionService, appRoutingProviders ],
bootstrap: [AppComponent,[SessionService]]
})
export class AppModule { }
我在boostrap中创建SessionService,但我在浏览器控制台中出错:
zone.js:522未处理的Promise拒绝:组件SessionService是 不属于任何NgModule或模块尚未导入您的 模块。 ;区域:;任务:Promise.then;值:ZoneAwareError {__zone_symbol__error:错误:组件SessionService不属于 任何NgModule或模块尚未导入......}错误: 组件SessionService不是任何NgModule或模块的一部分 没有导入你的模块。
这是我的主要内容:
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { enableProdMode } from '@angular/core';
import { environment } from './environments/environment';
import { AppModule } from './app/app.module';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule);
答案 0 :(得分:0)
我认为您的教程来自测试版。
因为在r.c版本之前,符号就像
bootstrap(AppComponent, [provide(SharedService, {useValue: sharedService})]);
现在,如果您想要全局提供服务作为单身人士,您所要做的就是在根模块的供应商数组中提供服务。
@NgModule({
declarations: [
AppComponent,
ProfileComponent,
TestComponent,
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
SlimLoadingBarModule.forRoot(),
FormWizardModule
],
exports: [BrowserModule, SlimLoadingBarModule],
providers: [UserResolverService, SessionService, appRoutingProviders ],
bootstrap: [AppComponent] //<---- remove it from here
})
export class AppModule { }