如何将参数传递给为 Angular 7 中的模板驱动表单编写的自定义验证器?
我从多个其他问题和博客文章中汇总了以下代码,但大多数集中在响应式表单而不是模板上。
import { AbstractControl, ValidatorFn, NG_VALIDATORS, Validator, FormControl } from '@angular/forms';
import { Directive, Input } from '@angular/core';
// validation function
function validateMinValue(minValue: number): ValidatorFn {
return (c: AbstractControl) => {
console.log(minValue);
return null;
}
}
@Directive({
selector: '[minValue][ngModel]',
providers: [
{ provide: NG_VALIDATORS, useExisting: MinValueValidator, multi: true }
]
})
export class MinValueValidator implements Validator {
@Input("minValue") minValue;
validator: ValidatorFn;
constructor() {
this.validator = validateMinValue(this.minValue);
}
validate(c: FormControl) {
return this.validator(c);
}
}
我如何在这样的输入中访问传递给 minValue 的值
<input type="text" name="testInput" class="form-control"
[(ngModel)]="testValue" required
currencyMask [options]="{ thousands: ',', decimal: '.' }"
minValue="100">