在angular2中注入ngModule提供程序中的服务并尝试在组件中使用不起作用

时间:2016-08-29 08:23:56

标签: angular

在angular2 rc5版本中,在ngModule提供程序(根级别)中注入一个服务并尝试在组件中使用它,但是遇到了无法找到" servicename"的问题。 这是我的代码,

根文件:

import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ApplicationRef } from '@angular/core';
import { CommonModule } from '@angular/common';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { OtherService } from './other.service';

@NgModule({
 declarations: [ AppComponent ],
 imports: [ BrowserModule, CommonModule, FormsModule ],
 providers: [OtherService],
 entryComponents: [AppComponent],
 bootstrap: [AppComponent]
})
export class AppModule {}

服务:

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

@Injectable()
export class OtherService {
    getUsername(){
        return 'from other service';
    }
}

组件:

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

    @Component({
      selector: 'app-root',
      templateUrl: 'app.component.html',
      styles: [':host(.selected) {display:block;background:#ccc;}']
    })
    export class AppComponent {
      title = 'app works!!';

      constructor(private otherSer: OtherService){};
    }

我遇到了问题,因为"找不到姓名'其他服务'在组件' app.component'"。

如果我做错了,请纠正我。

谢谢!

1 个答案:

答案 0 :(得分:5)

您还需要在OtherService中导入app.component,因为您要将其添加到构造函数中,并且无需导入就无法解析其名称。