script タグ内に javascript 関数を定義する a.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
}
]);
問題は、スクリプト タグ内で定義されていることではなく、関数内で定義されていることです (コールバックが に渡されます$
)。これは、その関数に対して完全にプライベートであることを意味します。何かがその関数の外部からそれへの参照を利用できるようにしない限り、関数の外部からそれを呼び出すことは不可能です。
それを可能にする 1 つの方法は、それをグローバル変数に割り当てることです。
window.xxx = xxx;
...しかし、一般的に、グローバル変数は最後の手段の解決策です。
代わりに、おそらくその関数をモジュール (理想的には、その非Angularブロックで行われるすべてのこと)に移動し、そのモジュールへの依存関係をコントローラーに挿入して、そのように呼び出すことができます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加