我有一个要使用的Angular 5应用程序
我知道我们可以使用DI(注入令牌)或Services来使用常量,或者创建具有所有常量的global.ts文件,然后在任何位置访问它们。
我想了解什么是最好的推荐方法。
答案 0 :(得分:0)
我将如何做只是创建两个不同的命名空间 -应用常数 -ModuleContants
然后从名称空间中导出个人常量,例如:
export namespace ApplicationConstant {
export const APP_NAME = 'Todo_list';
}
请不要过于复杂,因为它们只是常量,因此无需引入DI。 除非确实有需求,否则请始终尝试独立于框架。 当您需要模拟..etc时,DI很好,但对于常量,它们通常只是值。
如果使用DI(服务),则必须将其添加到app-module
.. etc中,然后将其注入其他位置。这增加了复杂性,没有真正的好处。
如果您使用DI(服务),我可以看到的唯一好处可能是希望按模块进行LazyLoad,但是常量通常非常轻便。
您的global.ts
很好,但是总是将其封装在一个命名空间中,如上面的示例所示,因此,当您访问它时,您知道它的来源例如:ApplicationConstant.APP_NAME
。