[英]Is there a way to call Angular Controller function from Javascript written inside <Script> tag in the HTML Page
[英]calling javascript function defined in html script tag from angular controller
我有一個在腳本標記內定義javascript函數的.html。 由於顯然xxx()不在bCtrl內,有人知道如何調用xxx()嗎? 關鍵是我無法將函數xxx移到控制器或指令中,因為不知道角度的人負責此函數。
<html ng-app="myApp">
<div ng-controller="bCtrl">
.....
</div>
<script>
(function($) {
$(function(){
function xxx () {
// do something
}
});
})(jQuery);
</script>
</html>
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.