如何在初始化之前等待依赖模块运行功能完成

时间:2013-07-03 19:56:01

标签: angularjs

我正在尝试开发一个应用程序,其中一个模块将依赖于第二个模块。在第一个模块运行函数我尝试使用http从服务器填充templatecache和一些数据,但由于http调用是异步的,我的第二个模块将在第一个模块完成之前运行,并且我在结果中未定义。下面的代码会使情况更加清晰

   var app = angular.module('main', []).run(["$templateCache",'$http','$timeout', function ($templateCache,$http,$timeout) {
              $timeout(function () {
                  $templateCache.put('ajay', 'ajay');
              }, 1000);
          }
          ]);

          var secondapp = angular.module('plunker', ['main']);
          secondapp.controller('test', function ($scope, $templateCache, $timeout) {
              // get me undefined i want to wait until module main is finished running run function 
              alert($templateCache.get('ajay'));
          });

1 个答案:

答案 0 :(得分:1)

拥抱异步性:

 var app = angular.module('main', []).run(["$templateCache",'$http','$timeout', function ($templateCache,$http,$timeout) {
     $templateCache.put('ajay', $http.get("/data/ajay"));
 }
 ]);

 var secondapp = angular.module('plunker', ['main']);
 secondapp.controller('test', function ($scope, $templateCache, $timeout) {
     $templateCache.get('ajay').then(function (data) {
         alert(data);
     });
 });