我在 Mongoose 中有两个模式,一个用于医生信息,两个用于排名。 我的医生架构:
var doctorsSchema = new schema({
Entity: {type:String},
name: {type:String},
Expertise : {type:String},
HMO: {type:String},
Address: {type:String},
reception_hours: [],
lat: {type:Number},
lng: {type:Number},
Ranking : {type:Number}
},{collection: 'doctorsLocation'});
我的排名架构是:
var calSchema = new schema({
Entity: {type:String},
name: {type:String},
Expertise : {type:String},
Address: {type:String},
Attention : {type:Number},
Professional: {type:Number},
Availability: {type:Number},
Atmosphere: {type:Number},
Recommendation: {type:Number}
},{collection: 'cal'});
我想计算每个医生的排名,然后将每个医生的所有详细信息打印到屏幕上。
这是我的 Controller (在 angularjs 中):
mymedical.controller('calCtrl',['$scope','$http','$cookies', function($scope,$http,$cookies){
var generalInfo = Array();
$http.get('http://localhost:3000/doctors').then(function(response){
//console.log(response);
var generalData = response.data;
for(var i=0; i<generalData.length; i++){
$http.post('http://localhost:3000/calculateRanking',generalData).then(function(res){
//console.log(res.data);
var info ={};
info.Ranking = res.data;
//console.log(res.data);
console.log("1");
info.Entity = generalData[i].Entity;
info.name = generalData[i].name;
info.Expertise = generalData[i].Expertise;
info.Address = generalData[i].Address;
info.reception_hours=generalData[i].reception_hours;
info.HMO=generalData[i].HMO;
generalInfo.push(info);
}).then(last(generalInfo));
}
//info.Ranking = 0;
//console.log(rank);
});
function last(val)
{
$scope.general = val;
//console.log(generalInfo);
console.log("last");
}
}]);
我将所有医生发送到服务器端,然后, 我有计算服务器端排名的函数(node.js) 该函数获取 calSchema 并根据每个医生计算出他们的排名并将排名发送回客户端( Controller )。 获得排名后,我想将所有数据显示到屏幕上, 但我在 Angular 同步方面遇到问题,它打印了所有医生,然后打印了排名,我想将它们打印在一起, 我需要做什么来修复它?
谢谢
最佳答案
如果我理解正确的话,我想这可能就是你想要的
$http.get('http://localhost:3000/doctors').then(function(doctors) {
angular.forEach(doctors.data, function(doctor) {
$http.post('http://localhost:3000/calculateRanking', doctor)
.then(function(res) {
doctor.Ranking = res.data;
$scope.general.push(doctor);
});
});
});
所以这会
- 获取所有医生
- 循环医生
- 对每位医生进行 API 调用以获取他们的排名
- 设置医生排名
- 将医生插入可视数组
关于javascript - 从两个 http req 获取数据并将它们组合起来,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43260335/