Stefan Schuchlenz
Stefan Schuchlenz

Reputation: 117

Blaze layout always renders content after HTML structure

I have created a simple Bootstrap3 layout and want to use blaze templates in meteor but the content from my template is always rendered after my HTML structure.

Here is the code:

<head>
  <title>demo app</title>
</head>

<body>
  {{#Layout template="mainLayout"}}
    {{#contentFor region="main-content"}}
      This is the main content area
    {{/contentFor}}
  {{/Layout}}
</body>

<template name="home">
  {{welcomeText}}
</template>

<template name="mainLayout">
  <div class="container">
    <div class="row">
      <div class="col-sm-6">LOGO</div>
      <div class="col-sm-6">LOGIN BUTTONS</div>
    </div><!-- /header row -->
    <div class="row">
      <div class="col-sm-12">
        <!-- navigation -->
      </div>
    </div><!-- /nav row -->
    <div class="row">
      <div class="col-sm-12">
        {{> yield region="main-content"}}
      </div>
    </div><!-- /content row -->
  </div><!-- /container -->
</template>

The JavaScript:

if (Meteor.isClient) {
  Template.home.welcomeText = function () {
    return "Welcome to my site.";
  };
}

When I run this, the Bootstrap3 structure works fine but welcomeText is rendered underneath the container.

Upvotes: 0

Views: 226

Answers (1)

Stefan Schuchlenz
Stefan Schuchlenz

Reputation: 117

It seems that I overlooked to pass layoutTemplate option to my iron router route - now it works.

Upvotes: 0

Related Questions