Как использовать Enums для параметров метода сервиса (в AngularProject) - PullRequest
0 голосов
/ 09 марта 2020

Я работаю в проекте Angular 9.

У меня есть служба, которую я использую в компоненте. Параметром для метода в сервисе является указание имени panelClass. Вместо использования строк я бы хотел использовать перечисления для этого. Но я не уверен, как использовать перечисления таким образом.

Вот мой сервис, у меня уже объявлен мой enum:

export enum SnackBarPanelClass {
  fail = "snack-bar-fail",
  success = "snack-bar-success"
}
@Injectable({
  providedIn: "root"
})
export class SnackBarService {

  constructor(private snackBar: MatSnackBar) {}

  showMessage(msg: string, panelClass: SnackBarPanelClass): void {
    const config = new MatSnackBarConfig();
    config.panelClass = [panelClass];
    this.snackBar.open(msg, "x", config);
  }
}

Как бы я получил это перечисление из компонента? Вот пример того, как компонент в настоящее время использует службу (со строковым параметром вместо enum):

this.snackBarService.showMessage("There was an error getting info", "snack-bar-fail");

Как бы я использовал здесь enum вместо строки?

1 Ответ

1 голос
/ 09 марта 2020
this.snackBarService.showMessage("There was an error getting info", SnackBarPanelClass.fail);
...