繁体   English   中英

从角度控制器调用html脚本标签中定义的javascript函数

[英]calling javascript function defined in html script tag from angular controller

我有一个在脚本标记内定义javascript函数的.html。 由于显然xxx()不在bCtrl内,有人知道如何调用xxx()吗? 关键是我无法将函数xxx移到控制器或指令中,因为不知道角度的人负责此函数。

a.html

<html ng-app="myApp">
    <div ng-controller="bCtrl">
    .....
    </div>
    <script>
        (function($) {
            $(function(){
                function xxx () {
                    // do something
                }
            });
        })(jQuery);
    </script>
</html>

bCtrl

angular
.module('myApp')
.controller('bCtrl', [
    '$scope',
    function ($scope) {
        // wanna call xxx() if possible
    }
]);

问题不在于它是在script标签中定义的,而是在于它是在函数中定义的(将回调传递给$ )。 这意味着该功能完全是私有的。 除非某个东西可以从该函数外部对其进行引用,否则不可能从该函数外部对其进行调用。

一种可能的方法是将其分配给全局变量:

window.xxx = xxx;

...但是总的来说,全局变量是万不得已的解决方案。

相反,也许您可​​以将该函数移至模块中(理想情况下,所有事情都在该非Angular块中完成),然后将对该模块的依赖项注入到控制器中,然后以这种方式进行调用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM