在Angular中存储纯文本(魔术字符串)的位置

时间:2018-04-15 06:36:42

标签: angular design-patterns architecture magic-numbers

在我的Angular应用程序中,我想在控制器中设置简单的错误/通知消息。一个例子使用Material Snackbar for Angular

this.snackBar.open(
  'Order successful',
  'OK',
  { duration: 2500 }
);

我现在的问题是,我不想拥有魔法字符串'我的控制器中的消息。 是否有存储此消息的最佳做法?

我考虑过在专用的错误消息模型中使用带有关联值的2.4 TypeScript枚举。

非常欢迎经验和建议。

1 个答案:

答案 0 :(得分:1)

您可以使用ng-translate存储所有字符串。

然后,您可以在控制器中注入服务并使用它来获取这样的字符串:

translate.get('HELLO').subscribe((res: string) => {
  console.log(res);
  //=> 'hello world'
});

或者您可以直接在模板中使用它:

<div>{{ 'HELLO' | translate }}</div>

您还可以使用此语言支持多种语言,它提供了监听language change等更改的方法。