2016-04-04 4 views
1

При разработке расширенных маршрутов и вложенных шаблонов/данных в проекте Meteor я пытаюсь провести различие между компонентами маршрута в Iron Router и params и их наилучшее использование.Meteor Iron-Router, получающий доступ к переменным через [data] vs [params]

Целью является просто передать простые переменные/параметры в шаблон. Что лучше, использовать params или data, и каковы основные отличия или преимущества в таком контексте?

Для меня самая большая разница заключается в том, что data доступен как контекст данных в шаблоне Blaze, а для доступа к params требуется передать эту переменную шаблону через связанный помощник.

Мне лично не нравится идея устанавливать полные контексты данных (из запросов db) в конфигурации маршрутизатора и предпочитает делать это в помощниках. Таким образом, я чувствую, что самый простой способ передать эти параметры шаблону на самом деле через объект data, сохраняя лишний код, который нужно записать.

Однако это, похоже, противоречит обычной практике, поэтому я ищу все, что я пропустил, почему это так.

пример с использованием данных:

Router.route('aRoute', {data: {var: "this var"}});

я могу получить доступ в шаблоне "aRoute":

{{var}}

Versus Использование Титулы:

Router.route('aRoute', {params: {var: "this var"}});

Мне нужно создать помощник первым:

myVar : function() {return Router.current().params.var};

Тогда я могу получить доступ к объекту в шаблоне "aRoute":

{{myVar}}

У меня есть это право? Я что-то пропустил? Если я не использую data маршрутизатора для контекстов данных (как обычно используется), подходит ли этот шаблон?

+0

Просто для того, чтобы прояснить контекст: я просто передаю параметр, который помещает шаблон как «редактируемый», так что либо 'params {edit: TRUE}', либо 'data {edit: TRUE}' - это параметры, которые я ищу в. Также я продолжу эту модель с помощью будущей разработки приложения, поэтому я хочу сделать осознанный выбор на этом этапе. – robertdavid

+0

Я думаю, что я понимаю различие между ними как «данные» в первую очередь для шаблонов и рендеринга, в то время как «params» лучше всего подходит для передачи параметров на сервер для запросов БД, например. – robertdavid

ответ

2

Это граничит с мнением - предпочтительным шаблоном в i-r является использование data:, чтобы задать контекст данных маршрута. Это позволяет шаблону потреблять данные очень стандартным образом, в том числе потенциально не требуя помощников вообще!

Когда i-r предоставляет контекст данных, шаблон может вести себя так же, как он был вложен в другой шаблон и снабжен контекстом данных - нет никакой разницы. При подходе params шаблон теперь можно использовать только по маршруту , соответствующему маршруту.

+0

Спасибо @ michel-floyd. Если бы не ваш последний момент относительно доступа к данным во время маршрутов, а не с использованием маршрутов. Я думаю, что для моего конкретного приложения я буду использовать поле в 'data', чтобы использовать будущие немаршрутизирующие или вложенные основные шаблоны. – robertdavid

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

  • Нет связанных вопросов^_^