環境データを取得するプリローダー モジュールがあります。次に、AngularJS アプリをブートストラップします。モジュールと要素の値に変数を渡すことで、このモジュールを (あるべき姿で) 再利用可能にしたいと考えています。これにより、プリローダーをヘッダー アプリとフッター アプリの両方で個別に使用できるようになります。
これを構築するために使用したリソースが見つかりませんが、ユース ケースとソリューションの概要を説明した記事を次に示します。基本的に、いくつかの重要な環境データを含めることができないレガシー Perl Catalyst テンプレートに Angular アプリを適用しています。ajax 呼び出しを介して取得することが最善の回避策でした。
その要点は次のとおりです。
angular.module('Preload', [])
.run(['$http', '$q', function ($http, $q) {
// create an array of promises to be combined later
// (in case we ever need more than one)
var promises = [];
// call environment setup api
var env = $http({
method: 'GET',
url: '/api/v3/environment_urls/',
params: {}
}).success(function (data, status, headers, config) {
// store the retrieved data as a value in the Preload module
angular.module('PreloadInjections').value('environment', data);
});
promises.push(env);
// resolve combined promise when all included promises are resolved
var combinedPromise = $q.all(promises);
// manually bootstrap app when all promises are resolved
combinedPromise.then(function () {
var el = document.getElementById('ng-header'); // <----- VARS USED HERE
angular.bootstrap(el, ['alUser']); // <----------------- VARS USED HERE
});
}]);
次のようにドキュメントから呼び出されるものはすべて:
<script>
angular.element(document).ready(function() {
angular.bootstrap(null, ['Preload']); // <---------- VARS DEFINED HERE SOMEHOW
});
</script>
最後の 2 つの関数行で、それぞれの引数を変数に置き換えたいと思います。それらを渡す方法がわかりません。AngularJS のブートストラップ ドキュメントには 3 番目の構成引数が記載されていますが、任意のデータを処理するように設定されていないようです。
ドキュメント ファイルから呼び出されたときに、これらの値をモジュールに渡すにはどうすればよいですか?