2015-04-06 2 views
0

Я использую google reCAPTCHA через angular-no-captcha внутри твиттер-бутстрапа. Каждый раз, когда всплывающее окно открывается, мне необходимо сбросить виджет captcha. Поэтому я сбросить его, каждый раз, когда модальный шоу событие называется, как показано ниже:Google reCAPTCHA + AngularJS + Twitter Bootstrap - Modal

element.find(".modal").on("show.bs.modal",function(){ 
    $scope.noCaptchaControl.reset(); 
}); 

Но я получаю следующее сообщение об ошибке:

Uncaught TypeError: Не удается прочитать свойство «зарегистрировать» неопределенных WWW-OpenSocial .googleusercontent.com/гаджеты/RPC/rpc.v.js: 29 Uncaught TypeError: не определено не является функцией

Любая помощь очень ценится. спасибо заранее

+0

Что есть в rpc.v.js в строке № 29? –

+0

}} gadgets.config.register ("rpc", null, g); ........ Его файл с мини-файлом –

+0

Используйте неминифицированный файл здесь и проверьте, какая именно строка, где выполняется stop.Here путем просмотра ошибки можно сказать, что ваш gadgets.config не определен. –

ответ

1

Я думаю, вам не хватает 'widgetId'

попробуйте через директиву

https://github.com/vividcortex/angular-recaptcha

Я реализовал ReCaptcha через эту директиву.

Я добавил следующий код в свой HTML-страницу

<div vc-recaptcha key="'6Le4sgITAAAAAIzD0brQ3-8ikkN1NQStppnsB1Vi'" on-create="captchaCreate()" 

on-success="setResponse(response)"> </div> 
       <div ng-show="invalidCaptcha" class="form-group"> 
       <div class="has-error"> 
         <span class="help-block">Please verify captcha</span> 
         </div> 
     </div> 

и в controller.js

$scope.captchaCreate = function() { 
       console.log("CREATED"); 
//     vcRecaptchaService.reload(); 
      }; 

      $scope.invalidCaptcha = false; 

      $scope.setResponse = function(response) { 
       $scope.user.captcharesponse = response; 
       if (response !== null && response !== undefined && response !== '') { 
        $scope.invalidCaptcha = false; 
       } 
      }; 


$scope.resetCaptcha=function(){ 
vcRecaptchaService.reload(); 
}; 

также я добавил Recaptcha JS в тег сценария и модуля vcRecaptcha в мое приложение по редактированию следующей линия

var app = angular.module('myApp', ['vcRecaptcha']); 

И это отлично работает для меня

+0

Pls делит демо. Я сомневаюсь, что он поддерживает новый Google noCAPTCHA reCAPTCHA –

+0

. Я попытался реализовать угловую recaptcha и вызывать vcRecaptchaService.reload ($ scope.widgetId); это также вызывает ту же проблему, что упоминалось в Вопросе –

+1

, есть ли у вас несколько recaptcha? Если нет, то не нужно вызывать vcRecaptchaService.reload ($ scope.widgetId); Вам просто нужно вызвать vcRecaptchaService.reload(); т.е. без прохождения параметра «widgetId» также он будет работать. Я реализовал его в своей системе. – Anita

Смежные вопросы