问题描述:
在Angular应用程序中,使用提供者时,使用useFactory
方法定义的工厂方法没有被调用。
解决方法:
useFactory
方法,例如:import { Injectable } from '@angular/core';
@Injectable()
export class MyService {
constructor(private myFactory: MyFactory) { }
}
export function MyFactory() {
console.log('MyFactory is called');
return new MyService();
}
import { NgModule } from '@angular/core';
import { MyService, MyFactory } from './my-service';
@NgModule({
providers: [
MyService,
{ provide: MyService, useFactory: MyFactory }
]
})
export class AppModule { }
import { Component } from '@angular/core';
import { MyService } from './my-service';
@Component({
selector: 'app-my-component',
template: '{{ myService }}'
})
export class MyComponent {
constructor(public myService: MyService) { }
}
这样,当使用MyComponent
组件时,MyFactory
的工厂方法将被调用,并返回一个新的MyService
实例。