我有一个使用mongoose访问mongodb的函数,数据库调用工作并出现在控制台中,但它没有按原样返回该数组。无法弄清楚原因。
exports.getPrices = function() {
return Price.find().exec(function (err, docs) {
if (err) {
return err;
}
console.log(docs);
return docs;
});
};
来自服务的电话
angular.module('core')
.factory('Machineprice', [ '$http',
function($http) {
return {
getPrices:function(){
return $http.get('/getPrices')
}
};
}
]
);
控制器
angular.module('core').controller('MachinePricingController', ['$scope','Machineprice',
function($scope, Machineprice) {
$scope.prices = Machineprice.getPrices();
console.log($scope.prices);
}
]);
答案 0 :(得分:0)
它不起作用,因为getPrices()
以异步方式运行,这意味着它不会立即返回结果。该函数返回 promise ,这意味着必须在回调函数中处理结果。
$ http服务是一个带有单个参数的函数 - a 配置对象 - 用于生成HTTP请求和 返回承诺。
要使其正常工作,您必须更改控制器的代码。
angular.module('core').controller('MachinePricingController', ['$scope', 'Machineprice',
function ($scope, Machineprice) {
Machineprice.getPrices().then(function (response) {
$scope.prices = response.data;
console.log($scope.prices);
});
}]);