Метеор - Железный Маршрутизатор: {{>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,

Другие вопросы по тегам