Angular 2/4 - 在组件的所有html文件中获取服务变量的最佳实践?

时间:2017-06-15 21:04:06

标签: javascript angular angular-cli

我在角度4项目中提供警报服务。所有组件都可以在该服务中设置警报,但只有一些显示它们,每个组件都在一个唯一的位置显示它们。 所以我的问题是如何在所有html文件中定义从服务中获取变量?

我的服务如下:

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

@Injectable()
export class AlertService {
  message;

  constructor() { }

  setMessage(message){
    this.message = message;
  }
}

想要设置消息的组件只是导入服务并调用setMessage方法。但是当我尝试在html文件中使用消息时:

{{message}}

然后它超出了范围。如何在所有组件的所有html文件中访问此消息?

或许有更好的方法来解决这种需求而不是服务变量?

1 个答案:

答案 0 :(得分:2)

为了使用组件中的消息,您需要在构造函数中注入服务(您可能正在这样做)。

组件:

export class MyComponent {
  constructor(public alertService: AlertService)

在标记引用alertService.message而不是message。

{{ alertService.message }}