如何在Angularjs启动时调用服务

时间:2014-06-06 19:03:58

标签: javascript angularjs

我想从服务器获取配置并在angularjs中存储在全局范围内。我以多种模式运行我的应用程序,即开发模式和生产模式。我根据我所处的模式与少数外部服务交互。我可以通过从expressjs(我的服务器)休息调用angularjs来提供。它们存储在我的快递的配置文件中。

是否有启动时调用的控制器功能?我该如何编写这样的函数。目前我的目录结构是

enter image description here

是我的目录结构。角度js中的全局范围变量是否可以在上面的目录中通过mudules等系统和auth访问?

我还有公开的init.js

//public/init.js
'use strict';

angular.element(document).ready(function() {
    //Fixing facebook bug with redirect
    if (window.location.hash === '#_=_') window.location.hash = '#!';

    //Then init the app
    angular.bootstrap(document, ['mean']);

});

// Dynamically add angular modules declared by packages
var packageModules = [];
for (var index in window.modules) {
    angular.module(window.modules[index].module, window.modules[index].angularDependencies || []);
    packageModules.push(window.modules[index].module);
}

// Default modules
var modules = ['ngCookies', 'ngResource', 'ui.bootstrap', 'ui.router', 'mean.system', 'mean.testcases','mean.testruns',
     'mean.auth'];
modules = modules.concat(packageModules);

// Combined modules
angular.module('mean', modules);

2 个答案:

答案 0 :(得分:3)

如果我正确理解你的问题,那么听起来你可能想要研究角度模块中的配置块。这些是在启动时运行的代码块。以下是模块的角度doc的链接:https://docs.angularjs.org/guide/module。搜索“配置块”。至于在整个应用程序中提供它,您可能有兴趣查看提供程序。可以为提供者配置用户“配置块”。您可以创建一个提供程序,然后根据从服务器获取的配置文件中的内容在启动时配置该提供程序。

答案 1 :(得分:1)

您可以在ng-app声明下创建一个App控制器并处理其中的所有内容,但您确实使用服务来存储任何类型的持久数据。您还可以在此app控制器中起诉ng-init,以便在服务器通过调用具有服务器呈现对象的函数呈现页面时初始化您的应用程序。有几种方法可以实现您的需求,最好的方法取决于您的应用程序结构以及服务器呈现或静态服务等等