![](/img/trans.png)
[英]Angular 9 - how to inject dynamic parameters into a service constructor
[英]How to inject object that has constructor parameters in Angular?
我非常喜歡 Angular,我想弄清楚如何將參數傳遞給正在注入組件的 object 構造函數。
這是一個例子:
圖像捕獲.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
image-scanner. component
我需要傳遞給注入的 object ImageCapture
幾個構造函數參數一個是正在導入的 SDK 實例,第二個參數是 HTML DOM 元素,我正在使用@ViewChild
裝飾器。
我怎樣才能做到這一點?
您不能將參數傳遞給服務的構造函數,因為您的服務是在加載應用程序時創建的。 因此,當您在組件中使用服務時,該服務已經實例化。
一種解決方案是在您的服務中創建一個 function:
public initialize(sdk: any,videoSource: HTMLVideoElement,cameraFeedback: HTMLCanvasElement) {}
那么你只需要在你的組件的構造函數中調用這個 function。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.