#meteor #iron-router
#метеорит #железный маршрутизатор
Вопрос:
Моя проблема в том, что:
1- «{{> выход}}» не работает должным образом. Когда я удаляю «{{> 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,700amp;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 amp; BREADCRUMB-->
{{> adbreadcrumb}}
<!-- END PAGE TITLE amp; 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
.