如何在私有的构造函数注入服务
问题描述:
我有一个现有的代码具有私有的构造和返回对象实例返回对象实现Singleton模式 -如何在私有的构造函数注入服务
export class SingletonFactory {
private static factoryInstance = new SingletonFactory();
private constructor() {
}
public static getInstance() {
return SingletonFactory.factoryInstance;
}
}
我需要注入的依赖到这家工厂。我改变了我的代码如下 -
@Inject('MyService')
export class SingletonFactory {
private static factoryInstance = new SingletonFactory();
private constructor(private myService : MyService) {
}
public static getInstance() {
return SingletonFactory.factoryInstance;
}
}
请建议,我怎么能注入在构造函数在创建对象的依赖?
答
注入您的组件。
import { Router } from '@angular/router';
import { FormBuilder, FormGroup, Validators} from '@angular/forms';
import { Location } from '@angular/common';
constructor(public location: Location,public fb:FormBuilder,public global_service:GlobalService,public router: Router) {
}
+0
我已经将参数添加到构造函数,我的问题是如何通过调用构造函数来构造对象的位置传递参数? – SoftEngi
您有XY问题。为什么你使用SingletonFactory? Angular DI应该为你管理单例实例。 – estus
我继承了这个工厂的代码。我只是想添加一个依赖;如果我理解正确,你建议把它转换成一个有角度的工厂,让框架维护单身实例吗? – SoftEngi
我建议使用它作为“服务”服务。它已经是一个单身人士了。它接受类。如果你对这种方法有问题,我建议用相关细节更新这个问题。这不是一个典型的AngularJS代码。它使用ng-metadata吗? – estus