Skip to content

Instantly share code, notes, and snippets.

@dimitriipro
Last active November 17, 2016 22:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dimitriipro/d20415cd6e16c750fecf3a60cbbbefb1 to your computer and use it in GitHub Desktop.
Save dimitriipro/d20415cd6e16c750fecf3a60cbbbefb1 to your computer and use it in GitHub Desktop.
Заметка по спецификации Iron Router (Meteor)
Router.route('/post/:_id', {
// Имя маршрута
// Используется для упрощения поиска шаблона, если конечно он не указан
// в опциях шаблона. Если name не объявлено то роутер ищет имя основываясь
// на пути '/post/:_id'
name: 'post.show',
// Поддержка устаревшей версии
path: '/post/:_id',
// Если необходима сделать специфический RouteController вместо анонимного
// Подробнее смотреть в разделе Controller
controller: 'CustomController',
// Если имя маршрута отличается от названия шаблона, необходимо указать его
template: 'Post',
// Какой макет должен быть использован, если не задан этот параметр
// используется макет по умолчанию
layoutTemplate: 'ApplicationLayout',
// Указываем в какой регион впрыснуть какой шаблон
yieldRegions: {
'MyAside': {to: 'aside'},
'MyFooter': {to: 'footer'}
},
// Место где можно разместить свои подписки
subscriptions: function() {
this.subscribe('items');
// и добавить ожидание подписки(ждем пока получим данные)
this.subscribe('item', this.params._id).wait();
},
// Подписки и другие данные которые необходимо "дождаться".
// Различие со способом выше это использования хука, те перехватчика событий
waitOn: function () {
return Meteor.subscribe('post', this.params._id);
},
// Функция data автоматически устанавливает данные в макет.
// Функция может быть использована с плагинами и перехватчиками.
// Например плагин "dataNotFound" смотрит возвращаются ли данные, если их
// нет - отрисовывается шаблон где нет данных
data: function () {
return Posts.findOne({_id: this.params._id});
},
// Можно использовать любой из этих перехватчиков
onRun: function () {},
onRerun: function () {},
onBeforeAction: function () {},
onAfterAction: function () {},
onStop: function () {},
// Это то же самое как передача функции вторым параметром
action: function () {
// отрисовать все
this.render();
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment