2015-09-03 2 views
4

Всякий раз, когда я сталкиваюсь фрагменты кода в Интернете, я вижу что-то вродеMeteor: Single-документ Подписка

Meteor.subscribe('posts', 'bob-smith'); 

клиент может затем отобразить все сообщения «боб-кузнеца».

Подписка возвращает несколько документов.

Что мне нужно, напротив, это подписка на один документ, чтобы показать поле тела статьи. Я хотел бы фильтровать (статья) ID:

Meteor.subscribe('articles', articleId); 

Но я с подозрением, когда я искал в Интернете подобных примеров: Я не могу найти ни один одного документа подписки пример.

В чем причина этого? Почему никто не подписывается на один документ?

ответ

5

О, но люди делают!

Это не противоречит какой-либо лучшей практике, о которой я знаю.

Например, here является образцом кода из репозитория github Telescope, где вы можете увидеть публикацию для извлечения одного пользователя на основе его или ее идентификатора.

Here - еще один для извлечения одного сообщения, а here - это подписка на него.

Фактически, стоит подписать только к данным, которые вам нужны в данный момент в вашем приложении. Если вы пишете один пост страницы, вы должны сделать один пост публикации/подписки на него, такие как:

Meteor.publish('singleArticle', function (articleId) { 
    return Articles.find({_id: articleId}); 
}); 

// Then, from an iron-router route for example: 
Meteor.subscribe('singleArticle', this.params.articleId); 
1

Общего шаблон, который использует одну подписку документа является параметризованным маршрутом, например: /posts/:_id - вы увидите их во многих железах: здесь отвечает маршрутизатор.

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