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

如何在Angular中注入具有构造函数参数的对象?

如何解决如何在Angular中注入具有构造函数参数的对象?

我非常喜欢 Angular,我想弄清楚如何将参数传递给正在注入组件的对象构造函数

这是一个例子:

image-capture.service.ts

@Injectable({ providedIn: 'root'})
export class ImageCapture {

  constructor(
    private sdk: any,private videoSource: HTMLVideoElement,private cameraFeedback: HTMLCanvasElement) {}
}

图像扫描仪.component.ts

@Component({
  selector: 'app-document-scanner-component',templateUrl: './app-document-scanner-component.html',styleUrls: ['./app-document-scanner-component.scss'],})
export class ImageScannerComponent {

  @ViewChild('video') video!: ElementRef<HTMLVideoElement>;
  @ViewChild('cameraFeedback') Feedback!: ElementRef<HTMLCanvasElement>;

  constructor(private imageCaptureService: ImageCapture) { }

}

image-scanner. component 我需要传递给注入的对象 ImageCapture 几个构造函数参数一个是正在导入的 SDK 实例,第二个参数是我正在使用的 HTML DOM 元素 {{1} } 装饰器。

我怎样才能做到这一点?

解决方法

您不能将参数传递给服务的构造函数,因为您的服务是在加载应用程序时创建的。因此,当您在组件内使用您的服务时,该服务已经被实例化。

解决方案是在您的服务中创建一个函数:

public initialize(sdk: any,videoSource: HTMLVideoElement,cameraFeedback: HTMLCanvasElement) {}

那么你就必须在组件的构造函数中调用这个函数。

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