Метеор - Железный Маршрутизатор: {{>yield}} не работает
Моя проблема в том, что:
1- "{{>yield}}" не работает должным образом. Когда я удаляю "{{>yield}}" из шаблона, шаблон отображается правильно. Если я помещу "{{>yield}}" в шаблон, то отобразится пустой тег тела.
2- Если я удалю "{{>adlayout}}" из тега body, то отобразится пустой тег body.
У меня есть следующий код шаблона:
<head>
<title>My Metronic</title>
<meta charset="utf-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta content="width=device-width, initial-scale=1.0" name="viewport"/>
<meta content="Good Description" name="description"/>
<meta content="Dave Alex" name="author"/>
<!-- BEGIN GLOBAL MANDATORY STYLES -->
<link href="http://fonts.googleapis.com/css?family=Open+Sans:400,300,600,700&subset=all" rel="stylesheet" type="text/css"/>
<link href="assets/global/plugins/font-awesome/css/font-awesome.min.css" rel="stylesheet" type="text/css"/>
<link href="assets/global/plugins/bootstrap/css/bootstrap.min.css" rel="stylesheet" type="text/css"/>
<link href="assets/global/plugins/uniform/css/uniform.default.css" rel="stylesheet" type="text/css"/>
<!-- END GLOBAL MANDATORY STYLES -->
<!-- BEGIN THEME STYLES -->
<link href="assets/global/css/components.css" rel="stylesheet" type="text/css"/>
<link href="assets/global/css/plugins.css" rel="stylesheet" type="text/css"/>
<link href="assets/admin/layout/css/layout.css" rel="stylesheet" type="text/css"/>
<link id="style_color" href="assets/admin/layout/css/themes/default.css" rel="stylesheet" type="text/css"/>
<link href="assets/admin/layout/css/custom.css" rel="stylesheet" type="text/css"/>
<!-- END THEME STYLES -->
<link rel="shortcut icon" href="favicon.ico"/>
</head>
<body>
{{> adlayout }}
</body>
<template name="adlayout">
{{> adheader}}
<div class="clearfix"></div>
<div class="page-container">
{{> adsidebar}}
<!-- BEGIN CONTENT -->
<div class="page-content-wrapper">
<div class="page-content">
<!-- BEGIN SAMPLE PORTLET CONFIGURATION MODAL FORM-->
<!-- END SAMPLE PORTLET CONFIGURATION MODAL FORM-->
<!-- BEGIN STYLE CUSTOMIZER -->
<!-- END STYLE CUSTOMIZER -->
<!-- BEGIN PAGE HEADER-->
<div class="row">
<div class="col-md-12">
<!-- BEGIN PAGE TITLE & BREADCRUMB-->
{{> adbreadcrumb}}
<!-- END PAGE TITLE & BREADCRUMB-->
</div>
</div>
<!-- END PAGE HEADER-->
<!-- BEGIN PAGE CONTENT-->
<div class="row">
<div class="col-md-12">
Page content goes here - 22
{{>yield}}
</div>
</div>
<!-- END PAGE CONTENT-->
</div>
</div>
<!-- END CONTENT -->
</div>
{{> adfooter}}
</template>
Ниже приведены мои настройки маршрутизатора:
Router.configure({
layoutTemplate : 'layout'
});
Router.map(function(){
this.route('myHello', {
path: '/mine',
controller : 'MyHelloController'
});
});
Ниже приводится "MyHelloController":
MyHelloController = RouteController.extend({
layoutTemplate: 'adlayout',
template: 'hello',
waitOn: function () {
//return Meteor.subscribe('waitingFor');
},
data: function () {
/*
data = {waitingFor: 'No wait For'};
return data;
*/
},
onBeforeAction: function () {
},
onAfterAction: function () {
},
action: function () {
this.render();
}
});
Кто-нибудь может подсказать мне, что я делаю неправильно и как это можно исправить.
1 ответ
Вы можете получить более подробную информацию о происходящем, взглянув на консоль JavaScript в Chrome. У вас, как и в вашем коде, есть исключение. {{> Yield}} не будет отображаться из-за проблемы с шаблонами, участвующими в маршруте, который вы пытаетесь отобразить.
Трудно сказать, учитывая информацию, которую вы предоставили, что именно эта ошибка. Это может быть обычная ошибка Js.
Ошибки могут быть в помощниках вашего шаблона или в отображаемой функции (если они есть).
Также может быть, что ваши подшаблоны не отображаются должным образом или имеют ошибки в своих помощниках, таких как adfooter
или же adsidebar
,