Доступные шаблоны с метеорным и железным маршрутизатором
Я использую новую ветвь blaze-integration
IR и внесли необходимые изменения для существующего приложения. У меня в одном из моих шаблонов область доходности:
<div>
{{> yield region='signup-detail'}}
</div>
Я хотел бы установить эту область в конфигурации маршрута с помощью yieldTemplates
. Мой маршрут настроен так:
this.route('signUpInfo', {
path: '/sign-up',
template: 'signUp-form',
yieldTemplates: _.extend({}, mainYieldTemplates, {
'information': {to: 'signup-detail'}
})
});
mainYieldTemplates = {
'footer': { to: 'footer' },
'header': {to: 'header'}
};
Информация о моем шаблоне не отображается в signup-detail
. Случается только с новой веткой акулы и инфракрасной вспышкой, что-нибудь изменилось с помощью шаблонов Yield?
Шаблоны нижнего колонтитула и заголовка установлены правильно.
EDIT: Макет шаблона
<template name="basicLayout">
{{> yield region='header'}}
<div class="container">
<div class="row">
<div class="col-md-12 col-centered padding-top-four-em">
{{> yield}}
</div>
</div>
<hr>
<footer>
{{> yield region='footer'}}
</footer>
</div>
</template>
EDIT 2: шаблон формы SignUp
<template name="signUp-form">
<div class="col-md-12 signup-container">
{{>signUpSideBar}}
<div class="col-md-9 signup-content gray-border-box">
{{> yield region='signup-detail'}}
</div>
</div>
</template>
Примечание. Шаблон signUp-формы имеет область signup-detail
. Здесь мой маршрут signUpInfo
должен отобразить шаблон information
в этом регионе. Это использовалось для работы в ИК до интеграции с пламенем.
Ответы
Ответ 1
Я не знаю, что это отличный способ сделать. Но это работает для меня.
route.js
Router.route('/', function () {
// use the template named ApplicationLayout for our layout
this.layout('ApplicationLayout');
// render the Post template into the "main" region
// {{> yield}}
this.render('Post');
// render the PostAside template into the yield region named "aside"
// {{> yield "aside"}}
this.render('PostAside', {to: 'aside'});
// render the PostFooter template into the yield region named "footer"
// {{> yield "footer"}}
this.render('PostFooter', {to: 'footer'});
});
ApplicationLayout.html
<template name="ApplicationLayout">
<header>
<h1>{{title}}</h1>
</header>
<aside>
{{> yield "aside"}}
</aside>
<article>
{{> yield}}
</article>
<footer>
{{> yield "footer"}}
</footer>
</template>
main.html
<template name="Post">
<p>
{{post_content}}
</p>
</template>
<template name="PostFooter">
Some post specific footer content.
</template>
<template name="PostAside">
Some post specific aside content.
</template>
Ответ 2
Похоже, что ваш {{> yield region='signup-detail'}}
не находится в вашей таблице yieldTemplate, поэтому маршрутизатор не может найти регион регистрационной детали, чтобы вставить ваш шаблон информации.
{{> yield}}
в вашем yieldTemplate отображается "signUp-form" (из вашего назначения template:
в вашем маршруте.
Если ваш шаблон "signup-detail" является шаблоном внутри "signUp-form", просто используйте {{> signup-detail}}
.
Если вы хотите, чтобы "signup-detail" повторно использовалась для нескольких шаблонов в качестве части шаблона layoutTemplate, добавьте {{> yield region='signup-detail'}}
в свой шаблон yieldTemplate.