Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/30.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular 8:在不使用构造函数的情况下将服务实例获取到另一个服务_Javascript_Angular_Adaptive Cards - Fatal编程技术网

Javascript Angular 8:在不使用构造函数的情况下将服务实例获取到另一个服务

Javascript Angular 8:在不使用构造函数的情况下将服务实例获取到另一个服务,javascript,angular,adaptive-cards,Javascript,Angular,Adaptive Cards,我正在使用。我需要创建一些操作服务,并将该服务传递给自适应卡模块,然后从那里执行。但在实施过程中,我面临着一个问题。该操作服务依赖于其他服务,我们无法从构造函数传递该依赖项 **ActionService.js** import ServiceX from '../' import ServiceZ from '../' export Class ActionService{ constructor( private serviceX: ServiceX, privat

我正在使用。我需要创建一些操作服务,并将该服务传递给自适应卡模块,然后从那里执行。但在实施过程中,我面临着一个问题。该操作服务依赖于其他服务,我们无法从构造函数传递该依赖项

**ActionService.js**

import ServiceX from '../'
import ServiceZ from '../'

export Class ActionService{
   constructor(
    private serviceX: ServiceX,
    private serviceZ: ServiceZ
)
 execute(){
   this.serviceX.action()
 }
}


**AdaptiveCard service**

import { ActionService } from '../'
import * as AC from 'adaptivecards';

export class AdaptiveCardService{
AC.GlobalRegistry.actions.register('name-of-action', ActionService);
}
这里的问题是,自适应模块使用NEW关键字调用操作服务,而不是将依赖项作为参数传递。因此,在执行函数内的实际服务中,servicex未定义

是否有任何方法可以在不调用构造函数的情况下注入服务

我在下面引用了url来注入它,但它仅在Angular 2中受支持


您可以使用
喷油器

constructor(private injector: Injector) {
        let serviceX: ServiceX= this.injector.get(ServiceX);
}

仅供参考

我尝试了这个方法,但没有成功,因为这里的问题是:为了注册自适应卡操作,我们应该传递一个没有任何参数的服务。i、 在Adaptivecardservice中,我们应该能够在没有任何参数的情况下传递ActionService。导出类AdaptiveCardService{AC.GlobalRegistry.actions.register('name-of-action',ActionService);}