我有一个预加载器模块,它可以检索一些环境数据。然后它引导 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引导文档提到了第三个配置参数,但它显然没有设置为处理任意数据。
从文档文件调用模块时,如何将这些值传递给模块?