我遇到了'不透明的标记'作为在Angular 2中实现全局常量的解决方案,例如:在Angular 2中定义全局常量
尽管阅读了文档,我似乎无法理解这一点.
使用OpaqueToken比使用字符串作为标记更可取,因为多个提供程序使用与两个不同标记相同的字符串可能导致冲突.
什么?什么是开始的Angular2令牌?所有我得到的谷歌都是JSON网络代币(他们在auth等中的角色等)的答案,据我所知,但显然没有任何关联.
什么是不透明的令牌?它是干什么用的?
PS更多关于不透明标记的文档用于提供常量.然而,他们并没有帮助我.
我们正在构建新的Angular 4项目,并试图了解哪种方法最适合处理全局常量,这些常量将在所有项目中重用.
我想将所有常量放在共享文件夹中,如此
共享
--constants
--dateTime.ts
--money.ts
--dialogConfig.ts
Run Code Online (Sandbox Code Playgroud)
并为每个文件使用可注入令牌
https://blog.thoughtram.io/angular/2016/05/23/opaque-tokens-in-angular-2.html
例如dialogConfig.ts将
export let DIALOG = new InjectionToken<DialogConfig>('dialog-config');
export const DIALOG_CONFIG: DialogConfig = {
width : '600px',
height : 'auto'
};
Run Code Online (Sandbox Code Playgroud)
这样每个常量对象都将从名称冲突中保存,并且可以注入.
这种方法的优点和缺点是什么?