在AngularJS中使用Mongo查询,并将查询结果发布到UI,可以使用AngularJS的服务(Service)和$http模块来实现。下面是一个示例代码:
首先,创建一个名为"DataService"的服务,用于封装Mongo查询和数据处理的逻辑:
app.service('DataService', function($http) {
this.getData = function(query) {
return $http.post('/api/data', { query: query })
.then(function(response) {
return response.data;
});
};
});
然后,在控制器中使用这个服务,并将查询结果发布到UI:
app.controller('MainController', function($scope, DataService) {
$scope.query = '';
$scope.data = [];
$scope.search = function() {
DataService.getData($scope.query)
.then(function(data) {
$scope.data = data;
});
};
});
最后,在后端(Node.js)中处理Mongo查询请求,并返回查询结果:
app.post('/api/data', function(req, res) {
var query = req.body.query;
// 处理Mongo查询逻辑,假设使用Mongoose
Data.find(query, function(err, data) {
if (err) {
res.status(500).send(err);
} else {
res.json(data);
}
});
});
这样,当用户在UI上输入查询条件并点击搜索按钮时,AngularJS会调用DataService的getData方法,发送查询请求到后端,然后将查询结果更新到$scope.data上,最终在UI上展示出来。