嗨,我是MEAN堆栈的新手,所以任何人都可以详细回答我。
我从视图(角度)发送一个简单的json到NODE:
查看代码:
<select class="btn btn-success" data-ng-model="difficulty" data-ng-options="type for type in difficultydropdown"></select>
<select class="btn btn-success" data-ng-model="type" data-ng-options="type for type in typedropdown"></select>
<button class="btn btn-success" ng-click="query_data(difficulty,type)">Query</button>
控制器代码:
app.factory('resultService', function($resource){
return $resource('/api/results');
});
app.controller('resultsController', function(resultService, $scope, $rootScope){
$scope.difficultydropdown =["","Level 1","Level 2","Level 3","Level 4","Level 5"];
$scope.typedropdown =["","Single","Multiple"];
$scope.query_data = function (difficulty,type){
$scope.query = {difficulty : difficulty, type :type };
resultService.get($scope.query);
};
});
节点代码:
router.route('/results').get(function(req,res){
console.log(req.query);
Question.find(req.query).exec(function(err, questions){
if(err){
console.error(err.stack);
return res.status(500).send(err);
}
else
{
console.log(questions);
return res.status(200).send(questions);
}
});
});
这将在终端上打印查询所需的结果。
现在我想知道的是如何在客户端接收这些数据。
答案 0 :(得分:0)
重要的是要意识到调用$ resource对象方法会立即返回一个空引用(对象或数组,具体取决于isArray)。从服务器返回数据后,将使用实际数据填充现有引用。
您可以在$ recourse文档https://docs.angularjs.org/api/ngResource/service/ $ resource
中阅读更多内容所以在你的控制器中:
$scope.results = resultService.get($scope.query);
在你看来:
<pre>{{results | json}}</pre>
在背景中,当满足$ http承诺时,angular将填充变量中的实际数据!