2017-01-18 12 views
1

私はangularjsAppにGoogle Captchaを実装しました。ReCaptcha Googleのデータコールバックwith angularJs

私は、このHTML

<div class="g-recaptcha" data-sitekey="{{key}}" data-callback="enableBtn()"></div> 

を持っており、私のコントローラで私が持っている:

$scope.enableBtn = function(){ 
    $scope.captchaSigned = true; 
}; 
$scope.key = "xyz"; 

しかし、仕事と私のコンソール・リターンではありません:

ReCAPTCHA couldn't find user-provided function: enableBtn() 

はどのようにして作ることができますAngularjsのデータコールバック?あなたのhtmlプットで

答えて

2

<div class="g-recaptcha" data-sitekey="{{key}}" data-callback="enableBtn"></div> 

そして、あなたのコントローラでは、PUT:

var enableBtn = function(){ 
    $scope.captchaSigned = true; 
}; 
$scope.key = "xyz"; 
window.enableBtn = enableBtn; 

それがコントローラに機能を結合するように、これは動作するはずです。コントローラーで

+2

を解決しました。私はhttps://github.com/VividCortex/angular-recaptchaで解決しました – LorenzoBerti

0

:HTMLページで

window.wrongCaptchaResponse = true; 
window.recaptchaResponse = function(key) { 
    window.wrongCaptchaResponse = false; 
}; 

<button type="submit" ng-disabled="loginForm.$invalid || wrongCaptchaResponse">Login</button> 
0

あなたの角度コントローラにreCAPTCHAのを初期化することができます。例えば。

コントローラ内にこれをボタンに追加するページの読み込みに必要な場合は、クリックするか初期化するかタイムアウトしてください。 :

function showRecaptcha(){ 
 
\t if(typeof grecaptcha !='undefined'){ 
 
\t \t grecaptcha.render('register-recaptcha', { 
 
\t   'sitekey' : 'your_site_key', 
 
\t   'callback' : recaptchaCallback, 
 
\t   }); 
 
\t } 
 
} 
 

 
function recaptchaCallback(resp){ 
 
\t console.log(11,resp); 
 
}
<div id="register-recaptcha"></div>