0

我有一个预加载器模块,它可以检索一些环境数据。然后它引导 AngularJS 应用程序。我想通过传递模块和元素值的变量来使这个模块可重用(应该如此)。例如,这将允许预加载器分别用于页眉和页脚应用程序。

我找不到我用来构建它的资源,但这里有一篇概述用例和解决方案的文章。基本上,我们将 Angular 应用程序应用到旧的 Perl Catalyst 模板,其中我们无法包含一些关键的环境数据。通过 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>

在最后两个功能行中,我想用变量替换各自的参数。我不知道如何传递它们。AngularJS引导文档提到了第三个配置参数,但它显然没有设置为处理任意数据。

从文档文件调用模块时,如何将这些值传递给模块?

4

0 回答 0