Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/391.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 从外部角度7获取值的抽象控件_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 从外部角度7获取值的抽象控件

Javascript 从外部角度7获取值的抽象控件,javascript,angular,typescript,Javascript,Angular,Typescript,当我打开“角度材质”对话框时,我会向该对话框发送一些数据 所以在对话框组件上 我为检查值是否大于或小于创建自定义验证,但我不断得到一个错误,即属性未定义 这是我的密码 constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDataMaster, private fb: FormBuilder, public usd: UserdetailsService ) { } this.validateFormVendor = thi

当我打开“角度材质”对话框时,我会向该对话框发送一些数据

所以在对话框组件上 我为检查值是否大于或小于创建自定义验证,但我不断得到一个错误,即属性未定义

这是我的密码

  constructor(@Inject(MAT_DIALOG_DATA) public data: VendorDataMaster,
  private fb: FormBuilder,
  public usd: UserdetailsService ) { }

this.validateFormVendor = this.fb.group({
      InvoiceAmountcontrol: [ this.data.InvoiceAmount , [ Validators.required, this.ToleranceValidator] ],
      NoInvoicecontrol: [ this.data.NoInvoice, [ Validators.required ] ],
      DateInvoicecontrol: [ this.data.DateInvoice, [ Validators.required ] ],
      NoFakturPajakcontrol: [ this.data.NoFakturPajak, [ Validators.required ] ],
      DateFakturPajakcontrol: [ this.data.DateFakturPajak, [ Validators.required ] ],
      Statuscontrol : [ {value:this.data.StatusInv, disabled: true} ]
    });
  }
  ToleranceValidator(control: AbstractControl) {
// this is when the data is undifiend
      console.log(this.data.AmountGR)
      if (parseInt(control.value) >  parseInt(this.data.AmountGR) * 1) {
        return { ToleranceRange : true };
      }
      return null;
  }
  public hasError = (controlName: string, errorName: string) =>{
    return this.validateFormVendor.controls[controlName].hasError(errorName);
  }
我猜ngif的启动速度比承包商快,但我不知道发生了什么

我尝试过使用try-catch,但没有解决问题,
我还将结果放在导出的组件上,这样我就可以在对话框组件上使用它,但仍然未定义
公差验证器
设置为
异步
验证器,如下所示。将其添加到第三位,而不是将其添加到数组的第二个值中

this.validateFormVendor = this.fb.group({
      InvoiceAmountcontrol: [ this.data.InvoiceAmount , [ Validators.required], this.ToleranceValidator ],
      NoInvoicecontrol: [ this.data.NoInvoice, [ Validators.required ] ],
      DateInvoicecontrol: [ this.data.DateInvoice, [ Validators.required ] ],
      NoFakturPajakcontrol: [ this.data.NoFakturPajak, [ Validators.required ] ],
      DateFakturPajakcontrol: [ this.data.DateFakturPajak, [ Validators.required ] ],
      Statuscontrol : [ {value:this.data.StatusInv, disabled: true} ]
    });
  }

公差验证器
设置为
异步
验证器,如下所示。将其添加到第三位,而不是将其添加到数组的第二个值中

this.validateFormVendor = this.fb.group({
      InvoiceAmountcontrol: [ this.data.InvoiceAmount , [ Validators.required], this.ToleranceValidator ],
      NoInvoicecontrol: [ this.data.NoInvoice, [ Validators.required ] ],
      DateInvoicecontrol: [ this.data.DateInvoice, [ Validators.required ] ],
      NoFakturPajakcontrol: [ this.data.NoFakturPajak, [ Validators.required ] ],
      DateFakturPajakcontrol: [ this.data.DateFakturPajak, [ Validators.required ] ],
      Statuscontrol : [ {value:this.data.StatusInv, disabled: true} ]
    });
  }
使用绑定

this.validateFormVendor = this.fb.group({
      InvoiceAmountcontrol: [ '' , [ Validators.required, this.ToleranceValidator.bind(this)] ],
      NoInvoicecontrol: ['', [ Validators.required ] ],
      DateInvoicecontrol: [ '', [ Validators.required ] ],
      NoFakturPajakcontrol: [ '', [ Validators.required ] ],
      DateFakturPajakcontrol: [ '', [ Validators.required ] ],
      Statuscontrol : [ {value:'', disabled: true} ]
    });
  }
使用绑定

this.validateFormVendor = this.fb.group({
      InvoiceAmountcontrol: [ '' , [ Validators.required, this.ToleranceValidator.bind(this)] ],
      NoInvoicecontrol: ['', [ Validators.required ] ],
      DateInvoicecontrol: [ '', [ Validators.required ] ],
      NoFakturPajakcontrol: [ '', [ Validators.required ] ],
      DateFakturPajakcontrol: [ '', [ Validators.required ] ],
      Statuscontrol : [ {value:'', disabled: true} ]
    });
  }

当我将文本输入到输入字段时,它仍然显示未定义数据的错误,我猜数据的值仍然不是补丁,有线索吗?当我将文本输入到输入字段时,它仍然显示未定义数据的错误,我猜数据的值仍然不是补丁,有线索吗?