angular - 有没有办法让组件在角度 2+ 中成为单例?
问题描述
我需要将组件制作为单吨,因此我可以在应用程序的任何地方使用它而无需再次初始化它。
怎么能做到这一点?
解决方案
您需要使用静态字段来创建它,在构造函数中为其分配第一个实例,如果它已经分配则抛出(有人试图实例化第二个副本)。然后您可以访问静态字段以在任何地方访问实例。大致是这样的:
export class MyClass {
constructor() {
if (MyClass.instance) {
throw('Already instantiated');
}
MyClass.instance = this;
}
static instance: MyClass;
}
然后在您可以访问的任何其他组件/服务中MyClass.instance
。
推荐阅读
- java - 计算大 O 表示法 O(n) 和 O(n^2)
- typescript - 无法使用语法创建对象
{} 了? - c# - 为什么以下 EF to SQL 无法按名称过滤
- json - Swift 5:如何从 NSSingleObjectArray 获取数据?
- hive - 我们可以从现有的创建镶木地板吗?
- pytorch - 了解后向钩子
- java - Quartz Scheduler - Ignore misfired job - withMisfireHandlingInstructionDoNothing() not working
- javascript - 我们可以在沙发库的外部 UDF 中执行 N1QL 查询吗?
- php - 从 WordPress 元字段中检索复选框数组
- c++ - CMake:禁止所有警告