1

我在 Angular 应用程序中工作。初始化应用程序时,Recaptcha 工作正常。在按下浏览器后退按钮事件 angular2-recaptcha 时导航到下一页后未加载

在 Package.json 文件中,我使用 angular2-recaptcha

"dependencies": {
    "@angular/animations": "^4.0.1",
    "@angular/common": "^4.0.1",
    "@angular/compiler": "^4.0.1",
    "@angular/core": "^4.0.1",
    "@angular/forms": "^4.0.1",
    "@angular/http": "^4.0.1",
    "@angular/platform-browser": "^4.0.1",
    "@angular/platform-browser-dynamic": "^4.0.1",
    "@angular/router": "^4.0.1",
    "angular2-recaptcha": "^0.5.0",
    }

登录.html

<div>
<re-captcha (captchaResponse)="handleCorrectCaptcha($event)" [site_key]="siteKey" class="captcha"></re-captcha>
</div>

登录组件.ts

import { ViewChild } from '@angular/core';
import { ReCaptchaComponent } from 'angular2-recaptcha';
 import { Router, RouterModule } from "@angular/router";

export class RegisterComponent {
  @ViewChild(ReCaptchaComponent) captcha: ReCaptchaComponent;
  constructor(private route: Router,private service:loginservice){
  }
  capcha:any; 
    handleCorrectCaptcha(response: string) {
     this.service.getCaptcha(response)
            .subscribe(
            res => {
            this.capcha=res;
             this.route.navigate(['/dashboard']);
            });
    }

}

模块

import { ReCaptchaModule } from 'angular2-recaptcha';

@NgModule({
  imports: [...,ReCaptchaModule]
  })
4

1 回答 1

1

我认为当组件再次加载时 site_key 没有初始化

用于APP_INITIALIZER初始化站点变量。

看看这个链接

于 2017-04-12T10:10:26.280 回答