Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从angular controller调用html脚本标记中定义的javascript函数_Javascript_Angularjs - Fatal编程技术网

从angular controller调用html脚本标记中定义的javascript函数

从angular controller调用html脚本标记中定义的javascript函数,javascript,angularjs,Javascript,Angularjs,我有一个.html,它在脚本标记中定义javascript函数。 由于xxx显然不在bCtrl内,有人知道如何呼叫xxx吗? 关键是我不能将函数xxx移动到控制器或指令,因为不知道angular的人负责此函数 a、 html 问题不在于它是在脚本标记中定义的,而在于它是在回调传递给$的函数中定义的。这意味着它对该函数是完全私有的。除非某个东西从该函数外部提供对它的引用,否则不可能从该函数外部调用它 一种可能的方法是将其分配给全局变量: window.xxx = xxx; …但总的来说,全局变量

我有一个.html,它在脚本标记中定义javascript函数。 由于xxx显然不在bCtrl内,有人知道如何呼叫xxx吗? 关键是我不能将函数xxx移动到控制器或指令,因为不知道angular的人负责此函数

a、 html
问题不在于它是在脚本标记中定义的,而在于它是在回调传递给$的函数中定义的。这意味着它对该函数是完全私有的。除非某个东西从该函数外部提供对它的引用,否则不可能从该函数外部调用它

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

window.xxx = xxx;
…但总的来说,全局变量是最后的解决方案


相反,理想情况下,您可以将该函数移动到一个模块中,所有事情都在该非角度块中完成,然后将对该模块的依赖关系注入控制器中,然后以这种方式调用该函数。

除了在定义xxx的内部闭包中之外,根本无法从任何地方调用该函数。这是一个范围问题。可能有用。您面临的基本问题是Angular方式和jQuery方式之间的冲突。Angular不仅仅是一个库,它还是一个框架,一种构建页面/应用程序的方法。祝你好运xxx函数类似于闭包内的双私有函数。您需要提供一个附加到窗口的公共引用或另一个全局引用来调用该函数,这有点粗糙。
angular
.module('myApp')
.controller('bCtrl', [
    '$scope',
    function ($scope) {
        // wanna call xxx() if possible
    }
]);
window.xxx = xxx;