0
スクリプトタグ内にjavascript関数を定義するa.htmlがあります。 明らかにxxx()はbCtrlの中にないので、誰でもxxx()を呼び出す方法を知っていますか? 角度を知らない人がこの機能を担当しているため、関数xxxをコントローラまたは指令に移動できません。javascript関数を呼び出すには、角度コントローラのhtmlスクリプトタグ
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
}
]);
'xxx'が定義されている内側のクロージャの内側以外の場所からその関数を呼び出す方法はまったくありません。スコープ上の問題です。 – deceze
[この質問とその回答](https://stackoverflow.com/questions/14994391/thinking-in-angularjs-if-i-have-a-jquery-background)が役立ちます。あなたが持っている基本的な問題は、Angularのやり方とjQueryのやり方の間の矛盾です。 Angularは単なるライブラリではなく、フレームワークであり、ページ/アプリケーションを構築するためのアプローチです。がんばろう! –
xxx関数は二重プライベート(閉じた内部の関数である閉じた内部の関数)に似ています。あなたは少しハックされているその関数を呼び出すために公開参照(ウィンドウまたは別のグローバル参照に添付)を与える必要があります。 –