Я положил recaptcha в регистрационную форму с угловым2. У меня есть контроллер для соответствия recaptcha с требуемым валидатором.Angular2 form disable submit
this.captchaControl = fb.control(false, Validators.required);
this.userForm = fb.group({
...
captchaControl: this.captchaControl
});
Изначально задано значение true, когда пользователь отвечает на него.
checkReCaptcha(response){
console.log(this.userForm.valid);
this.captcha = response;
this.captchaControl.updateValue(true);
console.log(this.userForm.valid);
}
Первый консольный журнал показывает ложь, второй - true.
В кнопку отправки, я поставил отключить функцию:
<button type="submit" [disabled]="!userForm.valid" class="btn btn-d">Register</button>
но кнопка пребывания Disable.
Как я могу вызвать кнопку, чтобы снова проверить действительность userForm
?
Обновление Вот пример моей проблемы. http://plnkr.co/edit/Rwy6Oc5JEEm7yIJYnxJX?p=preview
Когда вы заполняете форму, красная кнопка остается недоступной, даже если форма действительна. Если вы касаетесь любой другой формы ввода (или другой кнопки отправки), отключенная кнопка обновляется и становится доступной, но я ожидаю, что она станет доступной, когда будут определены все входы ...
Я пробовал, но, вероятно, что-то пропустил. добавляю стратегии изменения '@Component ({ changeDetection: ChangeDetectionStrategy.OnPush })' и я мимо строк, которые вы положили, но результат взгляд такой же. Что такое угловая зона? – manu
См. Https://angular.io/docs/ts/latest/api/core/NgZone-class.html, http://blog.thoughtram.io/angular/2016/02/01/zones-in-angular- 2.html, http://victorsavkin.com/post/118372404541/the-core-concepts-of-angular-2.Зона - это обертка. Угловые прогоны, в которых исправляются некоторые API-интерфейсы, чтобы получать уведомления при запуске событий или завершении операций асинхронного сканирования. Это происходит при обнаружении изменения углового пробега. Я рассмотрю этот вопрос. –
Можете ли вы создать Plunker, который демонстрирует проблему? –