【发布时间】:2021-03-09 02:06:25
【问题描述】:
我有一个应用程序,我需要存储分配给用户的全局变量。我会将它共享给每个组件,因此我创建了 Service 以提供对它们的访问。无论如何,有没有办法在应用程序的任何地方共享此服务?我知道我可以使用angular singleton pattern,但我仍然需要将此服务注入应用程序中的每个组件构造函数。我宁愿在不导入的情况下在任何地方共享此服务。
【问题讨论】:
标签: angular typescript singleton
我有一个应用程序,我需要存储分配给用户的全局变量。我会将它共享给每个组件,因此我创建了 Service 以提供对它们的访问。无论如何,有没有办法在应用程序的任何地方共享此服务?我知道我可以使用angular singleton pattern,但我仍然需要将此服务注入应用程序中的每个组件构造函数。我宁愿在不导入的情况下在任何地方共享此服务。
【问题讨论】:
标签: angular typescript singleton
听起来您试图避免依赖注入,它是 Angular 框架的核心,也是一种非常常见的模式。如果您的推理只是为了避免“夸大”您的构造函数,我建议您不要这样做。否则,您可以通过创建 .ts 文件并使用 export 关键字来实现全局可访问的数据结构和方法。
例如
example.ts
export class Example {
static dataStructure: any[];
static someMethod(): void {};
}
我个人将它与枚举一起使用来管理我的应用程序中的路线之类的事情,例如:
export enum AppRoute {
HOME = "home",
LOGIN = "login",
PROFILE = "user-profile"
}
但是,您仍然需要在组件中导入“example.ts”——您不必在构造函数中创建它们。您的 IDE 可能会处理这个问题。
https://angular.io/guide/dependency-injection
https://betterprogramming.pub/the-6-benefits-of-dependency-injection-7802b207ec69
【讨论】: