在多个组件的提供者中声明服务

Declaring services in providers of multiple components

我是 angular 2 的新手,我已经研究了一个星期左右。根据我们团队遵循的最佳编码实践,我们在根组件的提供者中声明我们的服务。

我想知道,如果我们在多个组件的提供者中声明我们的服务会怎样?

向组件提供者添加服务将覆盖父提供者并将创建该服务的新实例

这是一个例子 我假设我有一个名为 MyService

的服务

app.module.ts

@NgModule({
    ....,
    imports: [MyService, ...]
})

MyComponent1.ts

@Component({
    ...,
    providers: [MyService]
})

export default class MyComponent1 {
    constructor(private Myservice myService) {

    }
}

MyComponent2.ts

export default class MyComponent2 {
    constructor(private Myservice myService) {

    }
}

myService MyComponent1 和 MyComponent2 完全不同

MyComponent1中的那个是MyComponent1本身提供的那个 与 MyComponent2 中的不同,它是由 app.module

提供的