2014-10-17 60 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任何評論。

謝謝