如何使用角度服务来运行函数并将结果分配给$ rootScope

时间:2014-08-28 16:54:44

标签: angularjs promise rootscope

出于某种原因,我在围绕Angular逻辑时遇到了问题,但我决心理解这一点。

我正在尝试在应用程序启动时运行一个循环遍历对象并将结果存储为globaly的函数。我试图通过服务来做到这一点。

第一个问题:我应该使用.run()初始化它还是在第一条路径的控制器中?

这是我的代码:

var coreServices = angular.module('coreServices', []);

coreServices.service('addObject',["$http","$rootScope", function($http,$rootScope) {
   var _index = {};
   addObj = function(a,b){
      //loop through a  until _index object is built
   }
   // once _index is completely built assign to $rootScope.structure
}]);

我似乎无法做到这一点。每次我在我的控制器中记录$ rootScope.structure都是未定义的。做这样的事情的最佳方法是什么? $ scope.watch?承诺?

1 个答案:

答案 0 :(得分:0)

您希望在注入后使用run函数初始化服务函数:

app.run(['addObject', function (addObject) {
    addObject.addObj();
}])

app.service('addObject', ['$rootScope', function ($rootScope) {
    var _index = {};
    this.addObj = function(a,b){
      //loop through a  until _index object is built
      //do something to $rootScope.yourvariable
    }
}])