Angular 中的绑定回调函数



我有一个外部js文件加载到我的Angular项目中,其中一个函数是一个回调函数,我已经分配给我的一个函数fnBarcodeScanned(scan)

一切正常,因为我收到正确扫描的条形码的警报,但下一行没有为我的局部变量分配条形码this.scanData.

export class HomeComponent implements OnInit {
 scanData: string;
 ngOnInit() {
 }
 fnScanEnable() {
    EB.Barcode.enable({ allDecoders: true }, this.fnBarcodeScanned);
    this.scanData = "enabled: press HW trigger to capture.";
 }
 fnBarcodeScanned(scan) {
   alert(scan.data);
   this.scanData = "barcode: " + scan.data;
 }
  fnScanDisable() {
   EB.Barcode.disable();
   this.scanData = "disabled: press 'enable' to scan.";
 }
}

如何绑定fnBarcodeScanned(scan)功能?在我看来,当它被传递给回调时,它失去了与组件的绑定。

您可以使用

bind()arrow function

使用bind()

fnScanEnable() {
    EB.Barcode.enable({ allDecoders: true }, this.fnBarcodeScanned.bind(this));
    this.scanData = "enabled: press HW trigger to capture.";
 }

使用arrow function

fnBarcodeScanned = (scan) => {
   alert(scan.data);
   this.scanData = "barcode: " + scan.data;
 }

最新更新