簡體   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