У меня есть коллекция под названием «Статьи». Каждая статья имеет категорию. Я хотел бы иметь глобальную переменную, являющуюся массивом с каждым отдельным значением категории в моей коллекции статей.Метеор Как определить методы уровня класса?
Я пытался сделать это таким образом:
/models/article.coffee:
@Articles = новые Meteor.Collection "статьи"
Articles.categories = ->
Meteor.call "articleCategories", (e, r) ->
unless e
return r
/server/article_server.coffee :
Meteor.methods
articleCategories: ->
categories = _.uniq(Articles.find({}, {sort: {category: 1}, fields:
{category: true}}).fetch().map (x) ->
x.category
, true)
return categories
Это не работает. Результатом является «undefined», когда я вызываю «Статьи»() из консоли.
Что я делаю неправильно?
EDIT:
Я хочу, чтобы это сделать, потому что я хочу, чтобы мои статьи категории должны быть доступны везде на сайте.
Поскольку коллекция статей не будет публиковаться на всех страницах, я бы мог просто создать серверный сервер массива и передать его клиенту.
Но может быть, это не очень хорошая идея ...
Я предлагаю изменение модели схемы в мое последнее редактирование. – saimeunt
Это правда, но это больше обслуживания. Я закончил создание помощников на уровне шаблонов (что мне все равно нужно делать). Они реактивны. Я надеялся, что есть другой способ опубликовать разные виды одной и той же коллекции с сервера. – ndemoreau