Пример капчи с угловым 6 - PullRequest
0 голосов
/ 11 июня 2018

Я использую primeng captcha с угловым 6, и у меня есть проблема.Когда я пытаюсь напрямую загрузить страницу с подтверждением капчи, у меня возникает эта ошибка:

ОШИБКА TypeError: window.grecaptcha.render не является функцией Captcha.push ../ node_modules / primeng / components/captcha/captcha.js.Captcha.init (captcha.js: 42) на Captcha.push ../ node_modules / primeng / components / captcha / captcha.js.Captcha.ngAfterViewInit (captcha.js: 32)

Я только инициализировал капчу в моем index.html:

<script src="https://www.google.com/recaptcha/api.js?render=explicit" async defer></script>

Но это работает, если я перехожу на эту страницу с другой страницы.

Любые идеи, как решитьэто?

1 Ответ

0 голосов
/ 13 октября 2018

Я получил это, поэтому я прикрепил объект window.grecaptcha к моему компоненту, а затем *ngIf капчу, пока grecaptcha.render не станет правдой.Проверьте это.

// In your component
ngOnInit(){
    this.recaptcha = (window as any).grecaptcha;
}

// And then in your template
<ng-container *ngIf="recaptcha.render">
    <p-captcha ...></p-captcha>
</ng-container>

При этом компонент капчи не запустится, пока не выполнится сценарий и не будут созданы функции render в глобальном grecaptcha.

Ура.Желаем удачи тому, кто найдет эту проблему.

...