微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Angular 11:是否可以通过输入的条件注入服务

如何解决Angular 11:是否可以通过输入的条件注入服务

我有一个非常大的组件,它与一个用于加载数据的服务一起工作,而不是重新编写一个类似的组件来使用新服务,我编写了一个与第一个和我尝试使用的所有功能相同的服务使用输入动态更改服务在组件构造函数中的注入。

所以我会:

@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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。