0

環境データを取得するプリローダー モジュールがあります。次に、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 番目の構成引数が記載されていますが、任意のデータを処理するように設定されていないようです。

ドキュメント ファイルから呼び出されたときに、これらの値をモジュールに渡すにはどうすればよいですか?

4

0 に答える 0