调用AngularJS内部<脚本>标签

Calling AngularJS inside <script> tag

本文关键字:脚本 gt 标签 lt AngularJS 内部 调用      更新时间:2023-09-26

我有这个指令:

function Recaptcha(RecaptchaService) {
    return {
        restrict: 'E',
        templateUrl: 'app/components/login/recaptcha.html',
        controller: function($scope) {
            $scope.sendResp = function(response) {
                RecaptchaService.sendResponse(response);
            };
        }
    }
}

使用模板登录/重述a:

<script src='https://www.google.com/recaptcha/api.js'></script>
<script type="text/javascript">
    var verifyCallback = function(response) {
        $scope.sendResp(response);
    };
</script>
<div class="g-recaptcha" data-sitekey="MY-KEY" data-callback="verifyCallback"></div>

所以,我想在我的<script>中调用$scope.sendResp。但我得到了$scope is not defined。有办法做到这一点吗?

试试这个
(只有当captchadiv在ng应用程序中时,这才有效)

<script type="text/javascript">
    var verifyCallback = function(response) {
        var el = document.querySelector('.g-recaptcha'),
            $el = angular.element(el),
            $scope = $el.scope();
            $scope && $scope.sendResp(response);
    };
</script>