我在angularjsApp中实现了google Captcha。
我有这个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
进行数据回调?
答案 0 :(得分:3)
在你的html put:
<div class="g-recaptcha" data-sitekey="{{key}}" data-callback="enableBtn"></div>
在你的控制器中,输入:
var enableBtn = function(){
$scope.captchaSigned = true;
};
$scope.key = "xyz";
window.enableBtn = enableBtn;
这应该有效,因为它将绑定控制器中的函数。
答案 1 :(得分:1)
答案 2 :(得分:0)
在控制器中:
window.wrongCaptchaResponse = true;
window.recaptchaResponse = function(key) {
window.wrongCaptchaResponse = false;
};
在HTML页面中:
<button type="submit" ng-disabled="loginForm.$invalid || wrongCaptchaResponse">Login</button>
答案 3 :(得分:0)
您可以在角度控制器中初始化recaptcha。例如
在控制器内部添加此按钮单击或初始化或超时(如果您在页面加载时需要它)。 :
function showRecaptcha(){
if(typeof grecaptcha !='undefined'){
grecaptcha.render('register-recaptcha', {
'sitekey' : 'your_site_key',
'callback' : recaptchaCallback,
});
}
}
function recaptchaCallback(resp){
console.log(11,resp);
}
&#13;
<div id="register-recaptcha"></div>
&#13;
答案 4 :(得分:0)
而不是$scope.enableBtn = function(){
将函数定义为window.enableBtn = function(){
确保使用data-callback="enableBtn"
而不是data-callback="enableBtn()"