问题描述
我有一个非常大的组件,它与一个用于加载数据的服务一起工作,而不是重新编写一个类似的组件来使用新服务,我编写了一个与第一个和我尝试使用的所有功能相同的服务使用输入动态更改服务在组件构造函数中的注入。
所以我会:
@input() isLocal= false;
private service: Service1|Service2;
constructor(private injector: Injector) {
if (this.isLocal) {
this.service = injector.get(Service1);
} else {
this.service = injector.get(Service2);
}
}
我的问题是我无法在构造函数中访问我的输入,也无法在 ngOnInit 中初始化我的服务。我怎样才能做到这一点?
解决方法
如果您按照此处的描述实现工厂模式,那将是最好的:
angular.service vs angular.factory
但为此,您可以使用来自 Angular 核心的 Injector 类:
global _start
section .text
_start:
; ssize_t write(int fd,const void *buf,size_t count)
mov rdi,1 ; fd
mov rsi,hello_world ; buffer
mov rdx,hello_world_size ; count
mov rax,1 ; write(2)
syscall
; exit(result)
mov rdi,0 ; result
mov rax,60 ; exit(2)
syscall
hello_world: db "Hello World!",10
hello_world_size EQU $ - hello_world