2016-04-29 10 views
5

からの$ scope.function私はGoogleのrecapchaを実装しようとしています、 私は、ユーザーがそれの助けを借りて、人間であることを確認することができる午前、AngularjsコールプレインJS機能

reCapchaコード 'という名前のコールバック関数を呼び出しています私のコードでverifyCallbackを実行してください。 さらに、私のコントローラスコープに書かれたAngularJS関数を呼び出したいと思います。

ここに私のコードは、これまでのところです -

メインのHTML、私は部分的

<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer></script> 

のHTMLをincluded-ました -

var onloadCallback = function() 
    { 
     grecaptcha.render('loginCapcha', { 
      'sitekey' : 'someKey', 
      'callback' : verifyCallback, 
      'theme':'dark' 

     }); 
    }; 

    var verifyCallback = function(response) 
    { 
     //I get a response if user is able to solve the Capcha challenge 
     console.log(response); 

     //I want to call the function called 'auth' written in my AngularJS controller 
     var scope = angular.element(document.getElementById('#loginCapcha')).scope(); 
     scope.auth(); 
    }; 

    <div id="loginCapcha"></div> 

AngularJSコントローラ -

上記のシナリオの場合
+0

を私は最善の解決策は、直接reCAPTCHAのJS APIを使用することだと思いますここで一般的な設定を行うのではなく、この時点で最新のものやバグのないものを探し回っているが、どれが最新であるかわからない場合は、いくつかのrecaptcha指令があります。 https://developers.google.com/recaptcha/docs/display#js_apiここに1つhttp://vividcortex.github.io/angular-recaptcha/ – shaunhusain

+1

@shaunリンクのおかげで、私は基本的な作業コードを実装しようとしていました、私はあなたの与えられたリンクを調べます。 –

答えて

5
<div ng-controller='loginController' id='yourControllerElementID'> 

</div> 

、次のコードを使用:だから

var scope = angular.element(document.getElementById('yourControllerElementID')).scope(); 
scope.auth(); 

、あなたの方法は次のようになります。

var verifyCallback = function(response) 
    { 
     //I get a response if user is able to solve the Capcha challenge 
     console.log(response); 

     //I want to call the function called 'auth' written in my AngularJS controller 
     var scope = angular.element(document.getElementById('#yourControllerElementID')).scope(); 
     scope.auth(); 
    }; 
+0

'yourControllerElementID'は自分のコントローラ名またはコントローラ内の関数名ですか? –

+0

@AniruddhaRaje最新の回答を確認してください。 –

+0

私はコードを編集しました、それは私に与えています - Uncaught ReferenceError:$スコープが定義されていません –