2017-02-03 4 views
-2

КОД:Как запросить/отфильтровать все сообщения от одного пользователя? (MEAN стек)

Контроллер

(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

Почему downvote? Скажи мне, что случилось, и я сделаю все возможное, чтобы сделать вопрос более ясным. –

+0

vm.user = Authentication.user; vm.articles = ArticlesService.query(); Можно вернуть только те статьи, которые были аутентифицированы пользователем? –

ответ

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); 
    } 
    }); 
}; 
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, как это работает.

Edit:

В вашем случае это:

vm.authFilter = function(item) { 
    return item.user.displayName == vm.user.displayName; 
} 
+0

К сожалению, это не помогло:/Я обновил свой вопрос, чтобы показать, как я реализовал ваше решение. Скажи мне, если видишь что-то не так. –

+0

добавить 'console.log (item.author); console.log (vm.user); 'перед возвратом в' vm.authFilter' –

+0

Так 'vm.authFilter' возвращает всегда true или false? –

Смежные вопросы