2014-10-17 59 views
0

我试图定义一种全局变量,其值将反映在2/3不同的模板(指令)中。为此,我使用角度工厂如下:如何在AngularJS中将后端数据值赋给字符串变量?

app.factory('MyService', function ($http) { 
    return {  
     firstNumber: function(){  
      //return selectedNumber = "200"; 

      var selectedNumber = ""; 

      var selectedNumber = $http.get("/count.do").success(function (data) { 
       console.log('First Number: ', data[0].count) 
      }); 

      return selectedNumber; 
     } 
    }; 
}); 

正如你可以看到'selectedNumber'是那个公共变量。问题是当我硬编码价值为“200”,并从控制器调用如下:

//Init Number 
$scope.selectedNumber= MyService.firstNumber(); 

这整个过程工作正常。但只要我试图从后端获取值(您可以在上面看到)获取{}对象。

我做了一些研究,并理解我的Angular对象和字符串操作的概念不清楚......任何人都可以帮助我理解我正在做的错误并解决这种情况。

回答

0

嗯,我得到了我的预期结果通过如下使用 '回调' 服务:

在我的工厂,我只是叫 '$ http.get':

app.factory('MyService', function ($http) { 
    return {  
     firstNumber: function(){     
      $http.get("/count.do").success(callback); 
     } 
    }; 
}); 

然后从控制器I接收到的数据和分配如下:

//Init Number 
MyService.firstNumber(function(data) { 
    $scope.selectedNumber = data[0].count; 
}); 

我不知道它是否是一个很好的解决方案或者是什么,才会真正体会了这个解决方案PLZ任何评论。

谢谢