Возможно, я глуп, но я не могу понять, как получить пользовательскую проверку формы, чтобы остановить вызов onSubmit, когда проверка не удалась. Я пытался использовать как синтаксис HTML (путем добавления пользовательского ключевого слова проверки непосредственно в htmlTemplate компонента формы), так и через код при создании нового элемента управления. Я также не видел ничего, что указывало бы на то, что эта функция не должна работать для пользовательских валидаторов.
Вот пример кода, который я использую
import { Component, Output, EventEmitter, OnInit } from 'angular2/core';
import { FORM_DIRECTIVES, FormBuilder, Control, ControlGroup} from 'angular2/common';
@Component({
selector: 'formality-form',
templateUrl: 'html/formality.html',
styleUrls: ['styles.css']
})
export class FormalForm implements OnInit {
formGroup: ControlGroup;
// Here I register the custom validator to the Control group
constructor(fb: FormBuilder) {
this.formGroup = fb.group({
'date': ['']
} {validator: FormalForm.customVal});
}
// This is my custom validator
public static customVal(control: ControlGroup){
return {isFail:true};
}
// I would like for this to never be called, since the custom validator is in
// a state of perpetual fail.
onSubmit(): void {
console.log(this.formGroup.value);
alert('onSubmit called; formGroup.valid = ' + this.formGroup.valid);
}
}
Я надеюсь, что кто-то может либо показать мне, как заставить это работать правильно, либо указать мне на какую-то документацию, которая признает, что это не работает, как я ожидаю.