Моя цель - динамически создавать меню навигации на веб-сайте Meteor.Как визуализировать шаблоны в одном регионе с помощью Iron Router (Meteor)
У меня есть классическое меню со статическими ссылками и выход, где я хочу другие ссылки, которые будут вставлены, когда необходимо:
<nav id="menu">
<a href="#link1">Link 1</a>
<a href="#link2">Link 2</a>
{{> yield "navLinks"}}
</nav>
-
// module_posts.js
Router.onAfterAction(function(){
if (userIsAdmin()) {
this.render('postsMenu', { to: 'navLinks' });
}
});
// module_users.js
Router.onAfterAction(function(){
if (userIsAdmin()) {
this.render('usersMenu', { to: 'navLinks' });
}
});
Проблема заключается в том, например, когда администратор подключен, каждый модуль (сообщения, роли, категории ...) должен вставлять свои собственные ссылки в этот регион, но происходит то, что каждый модуль выполняет рендеринг по сравнению с предыдущим и удаляет ссылки, добавленные другим модулем, поэтому область похоже, принимает только один шаблон для визуализации.
Возможно, я делаю это неправильно, поэтому, пожалуйста, дайте мне чистое решение.
- EDIT -
Хорошо, может быть, лучшее объяснение: У меня есть несколько модулей (сообщения, пользователи, роли и т.д.), которые могут быть включены или выключены, каждый из них имеет чтобы управлять им.
Теперь я хочу отобразить их меню в одной уникальной области с именем {{nav}}. Поэтому мне нужно будет написать код где-нибудь в каждом модуле, чтобы добавить свое меню в область {{nav}}, если модуль включен.
Я действительно хочу использовать шаблоны для этого, потому что я мог бы создавать логику непосредственно в них, а не использовать коллекции для хранения ссылок.
Взгляните на [это] (https://www.discovermeteor.com/blog/spacebars-secrets-exploring-meteor-new-templating-engine/). Это может дать вам некоторое представление. – thepanuto
Прежде чем дать ответ, мне интересно, хотите ли вы, чтобы эти «навигационные ссылки» были добавлены в список ссылок навигации после того, как пользователь перешел на определенную страницу, или вы хотите, чтобы все они были добавлены сразу же в приложение нагрузить? Добавление их динамически и вообще при загрузке приложения определит решение, которое вам требуется для этой проблемы. – n4tiv3pwnst4r
@ n4tiv3pwnst4r: Я хочу отображать сообщения, когда, например, URL-адрес совпадает **/admin/posts/***, я не хочу видеть их в любое время, только когда они мне понадобятся. –