javascript - 具有来自外部角度 7 的值的抽象控制
问题描述
当我打开有关角度材料的对话框时,我将一些数据发送到对话框
所以在对话框组件上,我创建自定义验证以检查值是否超过或低于但我不断收到属性未定义的错误
这是我的代码
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 的启动速度比 contractor 快,但我不知道会发生什么
我尝试使用 try catch 但没有解决问题,并且我将结果放在导出的组件上,以便我可以在对话框组件上使用它,但仍然不可靠
解决方案
设置ToleranceValidator
为async
验证器,如下所示。而不是将其添加到数组的第二个值中,而是将其添加到第三个位置。
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} ]
});
}
推荐阅读
- wordpress - gulp 4 不更新 CSS 和 JS
- ajax - Chrome 新版本 73.0.3683.75 的 Ajax 调用错误?
- mysql - 收到错误错误代码:1064。您的 SQL 语法有错误
- node.js - 我可以在 bigquery 中将函数的参数作为查询的一部分传递吗?
- git - 如何修复我的 git 输出到寻呼机
- c# - 如何远程更新 xamarian.ios 和 xamarian.android 上的应用文本
- java - for 循环中的除数值神秘地(?)变化
- c# - Oracle 数据库与 C# 之间的连接
- kubernetes - kubernetes cron 作业应该每 10 分钟运行一次,并且应该删除集群中所有命名空间中处于“Terminating”状态的 Pod?
- arrays - 加载两个字典数组的 json 文件。将文件 A 中缺少的字典添加到文件 B