Я хочу, чтобы шаблон загрузки отображался до того, как на сайте будут отображаться все данные.Meteor: iron-router => waitOn без подписки
И после того, как метод serveride дал мне данные (из API [async]) через Meteor.call, я хочу загрузить правильный макет.
Я пробовал много способов найти в Google, которые описывают похожие, но не очень похожие проблемы. Включая способ определения функции с готовым дескриптором, также не работает. Я не могу заставить его работать.
Я не хочу использовать Коллекции, потому что это данные, специфичные для пользователя. (Я думаю, что это неэффективно, чтобы сделать сбор для каждого пользователя [без входа в систему], или я что-то пропустил) Возможно ли это?
Здесь мой код. Консольные журналы 2 для 1.
Router.route('/search/:term',{
name: 'search',
loadingTemplate: 'loading',
waitOn : function(){
var term = this.params.term;
//i think here has be something differnet either with return subscribe or function with ready-handle
Meteor.call('search',term,function(err, response) {
Session.set('shops', response);
console.log(1);
});
},
action : function(){
console.log(2);
this.render();
}
});
Template.search.helpers(
{
"shops" : function(){
return Session.get('shops');
}
}
);
Метод боковой стороны сервера возвращает массив.
Спасибо за помощь
Прямо сейчас, поскольку вы не возвращаете дескриптор с готовой функцией из 'waitOn',' action' будет выполняться немедленно. У вас все еще есть код, возвращающий функцию с готовым дескриптором, который вы пробовали? – Curtis
Нет. Когда я сделал это и проверил, было ли this.ready() в методе действий, это всегда было правдой, и оно запускалось/повторялось бесконечно. – delueg