2015-11-30 2 views
0

В Meteor, как я могу получить все записи без входа в систему, работает только при входе в систему. Я просто хочу показать записи:Meteor find() без входа в систему

Collection.find().fetch() 

и показать все записи как панель инструментов, но без входа. Есть идеи?.

+1

Что делает ваш публиковать функции выглядеть для этой коллекции? –

ответ

0

В Meteor, если пакеты разработки, такие как publish, удалены, данные по сборке не публикуются по умолчанию.

Чтобы опубликовать что-то, у вас есть этот код на сервере:

Meteor.publish('publication', function() { 

    return Collection.find({ }); 
}); 

Вы затем подписаться на эту публикацию с помощью Meteor.subscribe('publication') и действовать на вашем Collection.

Если данные в публикации предназначены только для зарегистрированных пользователей, вы всегда можете создать новую публикацию, такую ​​как выше, которая возвращает все. Затем вам нужно подписаться на эту публикацию, а не на текущую публикацию, которую вы используете.

На клиенте вам необходимо подписаться на публикацию, используя var subscription = Meteor.subscribe("publication");. Затем вы можете получить доступ к данным коллекции после того, как подписка будет готова с использованием Collection.find({}).

+0

Я пробовал ваш пример, но не работает, я создаю функцию публикации, а затем помещаю эту функцию в подпись, но когда я вызываю Collection.find() из «isClient», ничего не происходит. – pokaxperia

+0

Подписали ли вы публикацию? – Ivan

+0

Да, но до сих пор не работает – pokaxperia

0

Структура публикует colllections БЕЗ LOGIN:

Meteor.publish('publication', function() { 
    return Collection.find({ }); 
}); 

Если хотите КЛИЕНТ должны войти использование:

Meteor.publish('publication', function() { 
    if(this.userId){ 
     return Collection.find({ }); 
    } 
}); 

благодаря

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