代码:
控制器
(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();
}
}());
状况:
此代码完美无缺,并显示有史以来创建的所有帖子。
问题:
如何仅查询当前经过身份验证的用户创建的帖子?
语法是什么样的?
答案 0 :(得分:1)
将过滤器添加到控制器:
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;
}
答案 1 :(得分:1)
如果您在请求中传递了想要的用户名,那么您可以使用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);
}
});
};