使用Angular,我应该在哪里存储我的常量?

时间:2014-04-02 17:15:38

标签: javascript angularjs design-patterns internationalization

这个问题与如何做某事没什么关系,但更多关于最佳实践以及其他人做了什么?

我有一些服务,我使用某种外部API(在这种情况下是浏览器中的会话存储api),我在那里重用相同的常量字符串,公司名称和应用程序,让& #39; s称之为" ACME.Storage。",我希望在每个"键"的前面开头。串。我看到我的选择:

  1. 我可以重复使用字符串" ACME.Storage。"在每次通话中。
  2. 我可以创建一个JavaScript函数,在其中创建一个配置了" ACME.Storage的新存储对象。"一旦。这样," ACME.Storage。"在我的代码中出现一次。
  3. 我可以创建一个本地变量ans store" ACME.Storage。"在其中,然后重用它。同样,字符串文字只在我的代码中出现一次。
  4. 我可以创建一个单独的javascript对象,我可以分享。
  5. 我可以使用AngularJS"常数"
  6. 我可以将字段添加到配置文件的应用程序中。
  7. 我可以将它存储在本地化文字字符串的某个地方(即使这个特定的字符串没有被本地化)并通过翻译服务获得它。
  8. 我倾向于使用"常数"服务使它成为易于注射的服务。我唯一担心的是它比其他一些选项更少封装。

    关于最佳做法的意见?

2 个答案:

答案 0 :(得分:0)

通常,我将常量放入服务中。

根据我正在做的事情,我可能会创建一个除了存储相关常量之外什么都不做的服务。或者我可以将它们添加到代表“模型”的另一个服务中。

我还要补充一点,JavaScript没有正式的常量;所以除非你写了一些代码 - 比如你自己的访问者 - 你只是在处理一个可以在执行过程中被改变的变量。

答案 1 :(得分:0)

要扩展Whishler发布的内容,您可以(也可能应该)使用Angular提供的Constant模块。完整的文档可在此处找到:http://docs.angularjs.org/api/ng/type/angular.Module。服务是常量的常见位置,但Constant模块在其他提供方法之前应用。另一种选择是价值,但它几乎完全相同。