Angularjs 如何从角度控制器修改数据库查询的结果

Angularjs 如何从角度控制器修改数据库查询的结果,angularjs,controller,meanjs,Angularjs,Controller,Meanjs,我是Angular and MEAN.js的新手,我正试图弄清楚如何在数据到达视图之前处理从控制器(客户端)返回的数据。我的控制器中有一个函数,可以对数据库进行查询 $scope.getDataPoints = function() { $scope.datapoints = Datapoints.query(); console.log($scope.datapoints.length); console.log($scope.datap

我是Angular and MEAN.js的新手,我正试图弄清楚如何在数据到达视图之前处理从控制器(客户端)返回的数据。我的控制器中有一个函数,可以对数据库进行查询

    $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 + ",");
        }

    };
$scope.getDataPoints=function(){
$scope.datapoints=datapoints.query();
log($scope.datapoints.length);
log($scope.datapoints);
对于(变量i=0;i<$scope.datapoints.length;i++){
log($scope.datapoints[i].thevalue+“,”);
log($scope.datapoints[i].variant+“,”);
}
};

正如预期的那样,查询返回一个承诺,因此循环不会执行。如何捕获、操作(使用lodash)并将数据提供给视图?

如果视图返回承诺

 $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 + ",");
       }
     });
 }
$scope.getDataPoints=function(){
Datapoints.query()
.然后(功能(响应){
//假设response.data是您想要的,我不知道这会解决什么问题
$scope.datapoints=response.data;
log($scope.datapoints.length);
log($scope.datapoints);
对于(变量i=0;i<$scope.datapoints.length;i++){
log($scope.datapoints[i].thevalue+“,”);
log($scope.datapoints[i].variant+“,”);
}
});
}

它抱怨Datapoints.query(…).then不是函数如果这是AngularJS并且.query()返回$http或$q承诺,那么应该存在。确认您的函数实际上返回了一个承诺