图片中有三种型号User,UserDetails,Order。我想根据Order中的userId获取userDetails。
我删除了图片中的一些属性以缩短它。
我是服务器控制器上的远程方法
exports.userdetailByUserID = function(req, res,id) {
//var userId = new ObjectId(id);
Userdetail.find({ user : req.params['userId'] }).exec(function(err, userdetail) {
if (err) console.log(err);
if (! userdetail) return next(new Error('Failed to load Userdetail ' + id));
req.userdetail = userdetail ;
console.log(userdetail);
});
};
服务器路由定义为
app.route('/orders/getUserDetails/:userId').get(orders.userdetailByUserID);
如果我直接在浏览器上拨打电话:
http://localhost:3000/orders/getuserdetails/561ac35ce8436dc41b37011d
我得到了所需的输出。这就是订单的userId的用户详细信息。 但我不确定如何通过客户服务拨打电话。 我在下面做了类似的事情:
.factory('GetUserDetails', ['$resource',
function($resource) {
var resource;
resource=$resource('/orders/userdetails/:userId',{userId: '@userId'},{
getUserDetail:{
method:'GET',
isArray:true
}
});
return resource;
}]);
并且在控制器中:我正在呼叫服务,如:
function loadUserDetails() {
$scope.userDetails = GetUserDetails.getUserDetail({userId :userid}).$promise.then(function(data) {
$scope.userDetails = data;
});
}
它没有产生所需的结果,因为这会调用userdetails并获取所有记录,但我只想输入userId的单个记录。