Angular 将服务注入根模块

Angular 将服务注入根模块,angular,dependency-injection,Angular,Dependency Injection,我正在尝试将服务注入angular 2应用程序的根模块 该服务如下所示: import { Injectable } from '@angular/core'; @Injectable() export class UserService { loggedIn : boolean = false; username : string = "Test"; password : string = ""; constructor( ) { }

我正在尝试将服务注入angular 2应用程序的根模块

该服务如下所示:

import { Injectable } from '@angular/core';

@Injectable()
export class UserService {

    loggedIn : boolean = false;
    username : string = "Test";
    password : string = "";

    constructor( ) {

    }

    login ( username : string, password : string ) {
        this.loggedIn = true;
        return this.loggedIn;
    }

    logout ( ) {
        this.loggedIn = false;
    }

    getUsername ( ) {
        return this.username;
    }
}
这显然是相当简单的时刻,但我只是想让它的工作

然后我试图在我的根模块中将它声明为提供者,然后我在decorator的引导集合中也得到了它:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { routing, appRoutingProviders } from './app.routing';

import { LoginModule } from './login/login.module';
import { UserModule } from './user/user.module';
import { NavbarModule } from './navbar/navbar.module';

import { UserService } from './services/user.service'; 

import { AppComponent }  from './app.component';

@NgModule({
  declarations: [ AppComponent ],
  imports:      [ BrowserModule, routing, NavbarModule, UserModule, LoginModule],
  providers:    [ appRoutingProviders, UserService ],
  bootstrap:    [ AppComponent, UserService ]
})

export class AppModule {
}
然后我尝试像这样在appComponent中使用此服务

import { Component } from '@angular/core';

import { UserService } from './services/user.service';

@Component({
  selector: 'app',
  providers: [ UserService ],
  templateUrl: './app.template.html'
})

export class AppComponent {
    constructor ( private userService: UserService ) {
        console.log( userService.getUsername() );
    }
}
然后在运行应用程序时出现此错误

Can't resolve all parameters for AppComponent: (?)

你知道为什么这行不通吗?我尝试了很多实现

引导
部分删除该服务。将其放在
提供者
部分就足以使服务作为一个单独的服务提供。 还可以将其从任何
@Component()
装饰程序中删除。

如中所述 应禁止在组件中使用
提供程序
数组,并将在下一次rc中删除

 @Component({ 
 selector: 'app',   
 templateUrl: './app.template.html'  //<-- removed providers array
 })

确保从正确的目录导入服务。

尝试删除AppComponent中的
提供程序
数组。此外,您还需要在AppModuler的引导数组中包含
UserService
。删除providers数组会导致相同的错误。此外,我已经在引导阵列中包含UserService?=>引导:[AppComponent,UserService]@candidJok,因此从引导阵列中删除它会产生相同的错误。我还从所有组件装饰器中删除了它,并且再次删除了它。我觉得我在这里遗漏了一些东西,因为这正是我在阅读的所有材料中看到的实现。您应该只在@NgModule的providers部分拥有它。我只是在尝试扩展可注入类时遇到了这个错误。但你似乎不想这么做。
bootstrap:    [ AppComponent]` //<---UserService  removed