0

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

我试图在应用程序启动时运行一个函数,该函数循环一个对象并全局存储结果。我正在尝试通过服务来做到这一点。

第一个问题:我应该使用 .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? 承诺?

4

1 回答 1

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
    }
}])
于 2014-08-28T17:00:14.033 回答