2016-02-04 54 views
0

我是Angular和MEAN.js的新手,我試圖弄清楚如何處理從我的控制器(客戶端)返回的數據,在數據進入視圖之前。我有一個控制器中的功能,使查詢到數據庫。如何從Angular控制器修改數據庫查詢的結果

$scope.getDataPoints = function() { 
     $scope.datapoints = Datapoints.query(); 
     console.log($scope.datapoints.length); 
     console.log($scope.datapoints); 

     for (var i = 0; i < $scope.datapoints.length; i++) { 
      console.log($scope.datapoints[i].thevalue + ","); 
      console.log($scope.datapoints[i].variant + ","); 
     } 

    }; 

正如預期的查詢返回一個承諾,所以循環不執行。如何捕獲,操作(使用lodash),然後將數據提供給視圖?

回答

0

如果它返回一個承諾

$scope.getDataPoints = function() { 
    Datapoints.query() 
    .then(function(response) { 
     // Don't know what this resolves with, assuming response.data is what you would want 
     $scope.datapoints = response.data; 

     console.log($scope.datapoints.length); 
     console.log($scope.datapoints); 

     for (var i = 0; i < $scope.datapoints.length; i++) { 
     console.log($scope.datapoints[i].thevalue + ","); 
     console.log($scope.datapoints[i].variant + ","); 
     } 
    }); 
} 
+0

它抱怨說,Datapoints.query(...),然後是不是一個函數 – user379468

+0

如果這是AngularJS和.query()返回的$ HTTP或$ Q承諾,那麼應該在場。確認你的函數實際返回一個承諾 –