1

隕石とルーターパッケージをインストールしました

これで、メインページ app.html ができました

<body>
  <div class="container">
    <div class="page-header">
      <a href="/">
        <h1>Mi page</h1>
      </a>
    </div>
    <div class="content">
      {{renderPage}}
    </div>
  </div>
</body>

これで、すべてのページが {{renderPage}} 内でレンダリングされました。

ユーザーが /panel に移動すると、ユーザー パネルがレンダリングされます。ここがトリッキーな部分です。

このセクションには cpanel_nav_div と cpanel_body があり、ユーザーがパネル セクションにとどまっている場合、ユーザーがパネル オプション リンクのいずれかをクリックするたびに cpanel_nav_div がレンダリングされないため、cpanel_body だけが変更されるため、より効率的だと思います。

これを行う最善の方法は??

他のルーターとフィルター ルートを実行する方法があるため、ルートが /panel/... と一致すると、すべてのコンテンツが {{renderPage}} 内ではなく cpanel_body 内に入ります ????

Session.get と Session.set を設定し、セッションに応じて cpanel_body 内にコンテンツをレンダリングします (これにより、ルートが失われます)。

毎回ルートを使用して cpanel_nav と cpanel_body をレンダリングしますか?

助けてくれてthx

4

1 に答える 1

1

preserveを使用して、テンプレートの一部を再レンダリングしないように Meteor に指示できます。

再レンダリング中に DOM 要素を「保持」し、ドキュメント内の既存の要素をそのままにして、周囲の HTML を置き換えることができます。これは、テンプレートを再レンダリングしても、テキスト フィールド、iframe、およびテンプレートに含まれるその他の機密要素を乱す必要がないことを意味します。保持する要素は、古い DOM ではノードとして、新しい HTML ではタグとして存在する必要があります。Meteor は、保存された要素の周りに DOM をパッチします。

たとえば、テンプレート 'foo' で ID を持つすべての要素を保持するには、次を使用します。

 Template.foo.preserve({
   'input[id]': function (node) { return node.id; }
 });

したがって、preserve メソッドを使用して、Meteor に cpanel_nav_div 要素を再レンダリングしないように指示することをお勧めします。

于 2012-12-23T21:36:39.100 に答える