Angular2 RC5:在组件和路由器文件中重复导入

时间:2016-08-17 03:56:54

标签: angular

我在下面创建了一个NgModule,但是在我的SomeComponent中,我仍然需要包含SomeService,否则会产生错误。这是正确的方法吗?与路由文件相同,我需要导入已经在NgModule中导入的组件。

@NgModule({
    imports:      [ CommonModule, SharedModule ],
    declarations: [ SomeComponent ],
    providers:    [ SomeService ]
})

export class TestModule { }
在SomeComponent中

    import { SomeService } from "./some.service";

    export class SomeComponent {
        constructor(private _someService: SomeService) {
           this._comService.xxx
        }
    }

2 个答案:

答案 0 :(得分:0)

那是对的。您仍然需要进行导入。您不需要在整个地方声明提供者和指令。

答案 1 :(得分:0)

这是正确的。导入使您可以访问服务类的属性和方法,并在构造函数参数中包含对它的引用,以告知Angular检索它的实例。

您(通常)不想做的唯一事情是将服务列为您要使用它的组件内的提供者。因为它已经在模块装饰器的providers数组中列出,将其列为其他地方的提供者将创建单独的实例。

请参阅Angular NgModule docs