Angular的其他人可以使用服务吗?

时间:2018-10-25 14:41:55

标签: angular

我有本地模块,其中包含有关服务和组件的所有信息。

此模块包含在主模块app.module中。这是否意味着本地模块中描述的服务在根模块中可用?还是孤立的结构?

例如,我有header.component,其中包括使用服务的其他一些组件。为了将所有逻辑结合在一起,我创建了模块header.module。描述所有服务的地方。

如果我已经在app.module中导入了服务,是否需要在本地模块中导入该服务?

1 个答案:

答案 0 :(得分:1)

如果您向模块提供服务,则该服务可用于该模块的所有组件(一个共享实例)。

@NgModule({
  providers: [
  BackendService,
  Logger
 ],
 ...
})

或(自Angular 6起)

@Injectable({
 providedIn: 'root',
})

如果您向组件提供服务,则仅对此组件可用

@Component({
  selector:    'app-hero-list',
  templateUrl: './hero-list.component.html',
  providers:  [ HeroService ]
})

Documentation