0

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

这是一个例子:

图像捕获.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 实例,第二个参数是我使用@ViewChild装饰器获取的 HTML DOM 元素。

我怎样才能做到这一点?

4

1 回答 1

1

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

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

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

那么你只需要在你的组件的构造函数中调用这个函数。

于 2021-02-09T10:04:13.083 回答