2016-08-08 10 views
0

я делал один абонемент в инертен в метеоре я использую angular2 для клиентской стороныреактивности отключив в метеоре не загружая данные при первой загрузке

реактивности отключения работает должным образом, но я подошел с вопросом, когда я обновить страницу конкретные данные, которые я сделал {reactive: false}, не загружаются, но если я перейду к любому другому представлению, это произойдет, если я перейду с любого другого вида и его. он имеет проблему только при первом загрузке. если я удалить {реактивную ложь} его работа идеально

это мой код, чтобы опубликовать

Meteor.publish("ThreesixtyMenu", function() { 
    return ThreesixtyMenu.find({}); 

    }); 

и вот код, как я подписавшись его

Meteor.subscribe('ThreesixtyMenu') 
this.menudata = ThreesixtyMenu.find({},{reactive:false}) 
return this.menudata; 

надеясь быстрым решением, спасибо в аванс

ответ

0

Не следует звонить find с reactive: false, прежде чем подписка будет готова. Потребуется некоторое время для получения данных клиенту, поэтому ваш find ничего не вернет, пока данные не будут найдены.

Если вы активируете реактивность, то вызов find вызывается дважды. Первый вызов возвращает undefined (по той же причине, что и выше), а второй срабатывает, когда поступают данные из подписки, что дает правильный результат.

Подводя итог: без реактивности, вам нужно подождать, пока подписка не будет готова до получения данных.

+0

Большое вам спасибо за эту информацию. но не могли бы вы рассказать мне, как мне написать код, если я не звоню? find –

+0

Я не знаю, как интегрировать решение в ваш код, потому что я не знаком с Angular, но 'subscribe' принимает разные обратные вызовы , включая обратный вызов 'onReady': https://docs.meteor.com/api/pubsub.html#Meteor-subscribe – chrisklaussner