如何使用变量引导AngularJS模块?

时间:2016-12-06 16:13:30

标签: angularjs bootstrapping angular-module

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

我找不到我用来构建它的资源,但是here's an article概述了用例和解决方案。基本上,我们将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 bootstrapping docs提到了第三个配置参数,但它显然没有设置来处理任意数据。

如何从文档文件中调用这些值

0 个答案:

没有答案