2016-11-21 3 views
0

Что лучше всего подходит для обработки данных на основе подписки. Например, у вас есть игра, в которой вы должны сначала создать персонажа, прежде чем сможете делать какие-либо другие вещи. В настоящее время я могу попытаться обработать его с помощью фильтра onBeforeAction. Поэтому у меня есть глобальный контроллер для каждого маршрута, которому нужен персонаж.Как обрабатывать подписку в Meteor/Iron Router

DefaultController = LayoutController.extend({ 
    onBeforeAction : function() { 
    var currentCharacter = Character.getCurrent.call({}); 
    if(currentCharacter === undefined) { 
     this.render('CharacterCreate'); 
    } else { 
     this.next(); 
    } 
}, 
waitOn() { 
    this.subscribe('characters.owned'); 
} 
}); 

У вас есть маршрут, как это:

Router.route('/game', { controller: 'DefaultController' }); 

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

ответ

1

Просто загрузите загрузочный крюк во время загрузки подписки.

loading(){ 
    this.render('myLoadingTemplate'); 
} 

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

Возможно, вы найдете my post on building a clean router.js file.

+0

ссылка работает хорошо спасибо – Kani

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