これは私にとってはうまくいきました。最軽量のソリューションを探している他の人のために投稿すると思いました。
ページの html タグにトップレベルのコントローラーがあり、部分ビューごとにセカンダリ コントローラーがあります。
最上位コントローラーで、次の関数を定義しました…</p>
$scope.loadScript = function(url, type, charset) {
if (type===undefined) type = 'text/javascript';
if (url) {
var script = document.querySelector("script[src*='"+url+"']");
if (!script) {
var heads = document.getElementsByTagName("head");
if (heads && heads.length) {
var head = heads[0];
if (head) {
script = document.createElement('script');
script.setAttribute('src', url);
script.setAttribute('type', type);
if (charset) script.setAttribute('charset', charset);
head.appendChild(script);
}
}
}
return script;
}
};
したがって、セカンダリ コントローラーでは、次のような呼び出しで必要なスクリプトを読み込むことができます…</p>
$scope.$parent.loadScript('lib/ace/ace.js', 'text/javascript', 'utf-8');
外部スクリプトに含まれるオブジェクトが使用可能になるまでに少し時間がかかるため、使用する前にオブジェクトの存在を確認する必要があります。
誰かが時間を節約できることを願っています。