如何在Angular 2 / Typescript中声明一个全局变量?
我想让一些变量在 "Angular 2 "的 "Typescript "语言中随处可得。我应该如何完成这个任务?
158
3
我想让一些变量在 "Angular 2 "的 "Typescript "语言中随处可得。我应该如何完成这个任务?
这里是最简单的解决方案,既没有 "服务 "也没有 "观察者"。
把全局变量放在一个文件中,然后导出。
要在其他文件中使用全局变量,请使用 "import "语句。 ``import * as myGlobals from './globals';````。
例子。
共享服务是最好的方法
但你在注册时需要非常小心,以便能够为你的整个应用程序共享一个实例。你需要在注册你的应用程序时定义它。
但不要在你的组件的
providers
属性中再次定义它。否则,将为该组件及其子组件创建一个新的服务实例。
你可以看看这个关于Angular2中依赖注入和分层注入器如何工作的问题。
你可以注意到,你也可以在服务中定义
Observable
属性,当你的全局属性发生变化时,通知你的应用程序的一部分。更多细节请参见本问题。
例如,见https://stackoverflow.com/questions/35993778/angular-2-implementation-of-shared-services
或提供个别数值