我有這樣的自定義的驗證:角2自定義驗證與可觀測參數
export const mealTypesValidator = (mealSelected: boolean) => {
return (control: FormControl) => {
var mealTypes = control.value;
if (mealTypes) {
if (mealTypes.length < 1 && mealSelected) {
return {
mealTypesValid: { valid: false }
};
}
}
return null;
};
};
如果我像這樣使用它的工作原理:
ngOnInit() {
this.findForm = this.formBuilder.group({
categories: [null, Validators.required],
mealTypes: [[], mealTypesValidator(true)],
distanceNumber: null,
distanceUnit: 'kilometers',
keywords: null,
});
}
美中不足的是,mealSelected是我的組件上的屬性 - 當用戶選擇和取消選擇膳食時發生變化。
我如何調用上面的驗證器是使用靜態的,它永遠不會改變。
我怎樣才能得到驗證,當我使用component.mealSelected值作爲參數,如工作:
ngOnInit() {
this.findForm = this.formBuilder.group({
categories: [null, Validators.required],
mealTypes: [[], mealTypesValidator(this.mealSelected)],
distanceNumber: null,
distanceUnit: 'kilometers',
keywords: null,
});
}
,因爲如果我這樣做如上,它評估this.mealSelected
即刻這在當時是假的 - 然後當用戶選擇一頓飯時,它不會繼續,並將其傳遞給自定義驗證器。