BlazeLayout+FlowRouter+Bootstrap не отображается там, где сказано

Я пробовал полдюжины различных способов сделать это, но я не уверен, в чем проблема.

Для начала, вот краткий рисунок того, что я пытаюсь сделать:

Что я хочу: http://prntscr.com/br8xh6

что происходит: http://prntscr.com/br8z8p

Кажется, что происходит то, что мой .row .full-row отображается дважды, и динамический шаблон не загружается в мой <div class="col-md-10>, как определено. С чего бы это?

Вот мой текущий код:

<body>
    <div class="container full-container">
        {{> navbar}}
        {{> middle}}
    </div>
</body>

<template name="navbar">
    ...
</template>

<template name="middle">
        <div class="row full-row">
            <div class="col-md-2 left-bar" style="background:#800000;">
                {{> Template.dynamic template=sidebar}}
            </div>
            <div class="col-md-10">
                {{> Template.dynamic template=content}}
            </div>
        </div>
    <!-- </div> -->
</template>

<template name="leftbar">
        <div class="row">
            <div class="col-md-12">
                {{> avatar size="large" shape="circle"}}
            </div>
        </div>
</template>

<template name="usercard">
    <div class="col-md-4">
        <div class="thumbnail thumb-dark">
        <img src="default.png" alt="...">
            <div class="caption">
                <h3>Player name</h3>
                <p>...</p>
                <a href="#" class="btn btn-success" role="button">Join</a>
            </div>
        </div>
    </div>
</template>

<template name="home">
    <div class="row">
        {{#each playerslooking}}
            {{> usercard}}
        {{/each}}
    </div>
</template>

<template name="find_page">
    <div style="height:150px;width:150px;background:blue;">hello</div>
</template>

JS:

FlowRouter.route('/', {
  action: function() {
    BlazeLayout.render("middle", {sidebar: 'leftbar', content: "home"});
  }
});

FlowRouter.route('/find/:_id', {
  name: 'postfind.show',
  action: function() {
    BlazeLayout.render('middle', {sidebar: 'leftbar', content: "find_page"});
  }
});

Я несколько раз рефакторил свой код, пытаясь отладить это, так как я не уверен, как BlazeLayout должен работать с вложенными шаблонами.

Все входы оценены, спасибо.


person Orbit    schedule 10.07.2016    source источник


Ответы (1)


На всякий случай, вы пробовали корневую модификацию Blaze Layout?

См.: https://github.com/kadirahq/blaze-layout#set-other-root-node

person ghybs    schedule 11.07.2016
comment
Да. Судя по всему, BlazeLayout вносит некоторые изменения в тег <body>. Итак, я определил основной шаблон макета и не включил его в свой <body>. Затем я установил BlazeLayout.setRoot('body');. Я думаю, что он работает так, как ожидалось. - person Orbit; 11.07.2016