首页 > 解决方案 > 如何将枚举用于服务方法参数(在 AngularProject 中)

问题描述

我在一个 Angular 9 项目中工作。

我有一个在组件中使用的服务。服务中方法的参数指定 panelClass 名称。我不想使用字符串,而是为此使用枚举。但我不确定如何以这种方式使用枚举。

这是我的服务,我已经声明了我的枚举:

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);
  }
}

我如何从组件中获取此枚举?这是组件当前如何使用服务的示例(使用字符串参数而不是枚举):

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

我将如何在这里使用枚举而不是字符串?

标签: angulartypescriptserviceenumsangular9

解决方案


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

推荐阅读