Angular 角度6-当我更改页面时,reCAPTCHA v2不工作

Angular 角度6-当我更改页面时,reCAPTCHA v2不工作,angular,recaptcha,Angular,Recaptcha,我正在使用Angular 6创建一个网站。 我已经使用路由器出口路由了我的整个网站。 我有5页,在这5页中有3页有一张联系表。所有页面都包含相同的确切形式 我的问题是,当我第一次加载网站reCAPTCHA v2时,它工作得很好,但是当我通过导航切换到另一个页面时,reCAPTCHA v2甚至不会出现,除非我通过单击“刷新”重新加载整个页面。一旦它在页面上工作,它就不工作了,当我在没有刷新的情况下再次更改页面时,我会遇到同样的问题。仅当我完全刷新页面时,reCAPTCHA v2似乎才有响应 如何在

我正在使用Angular 6创建一个网站。

我已经使用路由器出口路由了我的整个网站。

我有5页,在这5页中有3页有一张联系表。所有页面都包含相同的确切形式

我的问题是,当我第一次加载网站reCAPTCHA v2时,它工作得很好,但是当我通过导航切换到另一个页面时,reCAPTCHA v2甚至不会出现,除非我通过单击“刷新”重新加载整个页面。一旦它在页面上工作,它就不工作了,当我在没有刷新的情况下再次更改页面时,我会遇到同样的问题。仅当我完全刷新页面时,reCAPTCHA v2似乎才有响应

如何在单页应用程序上解决此问题


我希望在多个页面中具有相同的表单,而不刷新页面。

这看起来是

也就是说,根据您的实施方式,您可以使用大量的npm/纱线模块:

大多数软件包都有说明书,所以你应该没问题。如果采用直接实现方式,则可以向表单中添加自定义验证器,并让Angular处理其余部分:

function recaptchaValidator(control: FormControl): { [res: any]: boolean } {
    if (addYourServerSideLogicHere(control)) {
        return {validCaptcha: true};
    }
}
自定义验证器在web上也有很好的文档记录……我建议从一个简单的布尔验证器开始,并从那里构建您的知识

关于如何实现这一点,也有很多很棒的文章,例如:


希望这有助于和快乐的编码

非常感谢我通过安装这个软件包修复了它。