2

ここでの議論から、

{{renderPages}} ヘルパーに渡された変数を許可する

既存の {{renderPage}} 内にテンプレートを表示しようとしています。

私のユースケース: 私は非常に単純な高レベルの本文テンプレートを持っています

<template name="body">
    {{> header}}
    {{> notifications}}

    <div class="content" id="content">
        <div id="main-content">

            {{{renderPage}}}

        </div>
    </div>
    {{> footer}}

</template>

ご覧のとおり、私のメイン コンテンツには{{renderPage}}. ルートを設定すると、これはうまく機能します:

 '/home': 'home'

ルートはテンプレート 'home' を見つけ、renderPage をそのテンプレートに置き換えます。これを拡張して、ルート テンプレートを特定の div 内に配置できるかどうかを確認したいと思います。

たとえば、私の home.html テンプレートでは次のようになります。

<template name="home">
        {{#if isAdmin}}
                <h1>student</h1>
        {{/if}}
        <div id="inner_home">
                  {{renderPage innerHome}}
         </div>
</template>

/home/tools : 'home_tools最上位のメイン コンテンツ div ではなく、子 div 内でテンプレートをレンダリングする別のルートを持つことは可能inner_homeですか?

編集:

JQuery と meteor-router メソッドのコールバック関数を使用して、探しているテンプレートを取得し、関連する div タグに直接追加するアプローチを評価しています。

何かのようなもの:

 var foundTemplate = _.template($('#item-template').html())
  $('#div_example').html(foundTemplate); //

誰かがより良いアプローチを持っている場合は、私に知らせてください。

4

1 に答える 1

0

もちろん。

client.js

Meteor.Router.add({
  '/home/tools': function() {
    Session.set("homeTemplate", "tools");
    return 'home';
  },
  '/home/admin': function() {
    Session.set("homeTemplate", "admin");
    return 'home';
  }
});

home.js

Template.home.homeTemplateTools = function() {
    return Session.equal("homeTemplate", "tools");
};

Template.home.homeTemplateAdmin = function() {
    return Session.equal("homeTemplate", "admin");
};

home.html

<template name="home">
    {{#if isAdmin}}
            <h1>student</h1>
    {{/if}}
    <div id="inner_home">
    {{#if homeTemplateTools}}
      {{> homeTools}}
    {{/if}}
    {{#if homeTemplateAdmin}}
      {{> homeAdmin}}
    {{/if}}
    </div>
</template>
于 2013-03-23T05:11:21.607 に答える