无法在$ http回调中设置类var

时间:2012-12-20 11:15:51

标签: angularjs

在下面的示例中,我尝试在成功回调中设置以下服务中定义的变量。我无法在服务中设置var authMap。这里发生了什么,我该怎么做?

app.service("authorization", ['$http', function($http){
  this.authMap = [];
  $http.get('/authmap').success(function(data){this.authMap = data});

}]);

1 个答案:

答案 0 :(得分:2)

在您的匿名回调函数中创建了一个新范围,因此this是不同的 你可以这样做:

app.service("authorization", ['$http', function($http){
  this.authMap = [];
  var that = this;
  $http.get('/authmap').success(function(data){ that.authMap = data });
}]);