2013-09-26 24 views
0

我不明白为什么我的函数没有设置我的全局变量。我的代码:AngularJS推迟did'n返回变量

var localizeRegForm = {}; 


var handlerLocalDef = function(defer) { 
    var hash; 

    defer.then(
     function(response) { 
      return hash = response.data; 
     }, 
     function(err) { 
      showPopup(err); 
     } 
    ); 

     return hash; 
    }; 

    var initialized = function() { 
     console.log("localizeRegForm",localizeRegForm); 
     localizeRegForm = handlerLocalDef(Localization.getLocalizedDefer('regularform')); 
     console.log("localizeRegForm",localizeRegForm) 
    } 

我的控制台显示:

  1. localizeRegForm Object {}
  2. localizeRegForm undefined

回答

0

最好还是把它改写:

 var initialized = function() { 
       Localization.getLocalizedDefer('regularform').then(function(response){ 
        localizeRegForm = response.data; 
        console.log("localizeRegForm",localizeRegForm) 
       }); 
      } 

和曲estion是不是AngularJS, 它更多的是使用延迟执行对象

0

使用这样

var deferred = $q.defer(); 
     $http({ 
      method: 'POST', 
      url: 'something', 
      data: data 
     }). 
     success(function(response, status, headers, config) { 
      deferred.resolve(response); 
     }). 
     error(function(response, status, headers, config) { 
      deferred.reject(""); 
     }) 
     return deferred.promise;