我正在尝试创建一个简单的自定义验证器。基本上如果一个变量(代表)为真,则该字段必须是必填字段。就是这样。
我不知道为什么,但我无法代表变量读取。这是未定义的。关于如何处理这个问题的任何线索?
rows between unbounded preceding and current row
答案 0 :(得分:3)
问题是您引用了一个函数,因此调用此函数时this
与组件对象不对应。
您可以尝试以下操作来强制在组件实例的上下文中执行该函数:
this.name = new Control('', (control) => {
this.validateName(control);
});
或使用bind
方法:
this.name = new Control('', this.validateName.bind(this));
在TypeScript中使用bind
方法时要小心:
答案 1 :(得分:0)
嗨,我认为这种方法对你有用。
addCustomerForm :any;
constructor (private builder: FormBuilder){
this.customername = new Control("", Validators.compose([Validators.required,
ValidationService.alphaValidator]));
this.addCustomerForm = formBuilder.group({
customername: this.customername,
});
this.customerName = '';