如何 query/filter 一个用户的所有帖子? (平均堆栈)
How to query/filter all posts by one user ? (MEAN stack)
代码:
控制器
(function () {
'use strict';
angular
.module('users')
.controller('MyArticlesController', MyArticlesController);
MyArticlesController.$inject = ['$state', '$window', 'UsersService', 'Authentication', 'Notification', 'ArticlesService'];
function MyArticlesController($state, $window, UsersService, Authentication, Notification, ArticlesService) {
var vm = this;
vm.user = Authentication.user;
vm.articles = ArticlesService.query();
}
}());
情况:
此代码运行良好并显示所有创建的帖子。
问题:
如何只查询当前认证用户创建的帖子?
语法是什么样的?
向控制器添加过滤器:
vm.authFilter = function(item) {
return item.author == vm.user;
}
并在ng-repeat
中使用它:
<a ng-repeat="article in vm.articles | filter: vm.authFilter" ...>
(假设 article.author
是文章的作者)
参见此处:http://jsfiddle.net/bhz3qvef它是如何工作的。
编辑:
你的情况是:
vm.authFilter = function(item) {
return item.user.displayName == vm.user.displayName;
}
如果你在请求中传递想要的用户名,那么你可以使用find
如下:
exports.list = function (req, res) {
Article.find({'user.username': req}).exec(function (err, articles) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(articles);
}
});
};
代码:
控制器
(function () {
'use strict';
angular
.module('users')
.controller('MyArticlesController', MyArticlesController);
MyArticlesController.$inject = ['$state', '$window', 'UsersService', 'Authentication', 'Notification', 'ArticlesService'];
function MyArticlesController($state, $window, UsersService, Authentication, Notification, ArticlesService) {
var vm = this;
vm.user = Authentication.user;
vm.articles = ArticlesService.query();
}
}());
情况:
此代码运行良好并显示所有创建的帖子。
问题:
如何只查询当前认证用户创建的帖子?
语法是什么样的?
向控制器添加过滤器:
vm.authFilter = function(item) {
return item.author == vm.user;
}
并在ng-repeat
中使用它:
<a ng-repeat="article in vm.articles | filter: vm.authFilter" ...>
(假设 article.author
是文章的作者)
参见此处:http://jsfiddle.net/bhz3qvef它是如何工作的。
编辑:
你的情况是:
vm.authFilter = function(item) {
return item.user.displayName == vm.user.displayName;
}
如果你在请求中传递想要的用户名,那么你可以使用find
如下:
exports.list = function (req, res) {
Article.find({'user.username': req}).exec(function (err, articles) {
if (err) {
return res.status(422).send({
message: errorHandler.getErrorMessage(err)
});
} else {
res.json(articles);
}
});
};