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/... 所有内容都进入 cpanel_body 而不是进入 {{renderPage}} ????

根据会话设置 Session.get 和 Session.set 并在 cpanel_body 内渲染内容(这样我们会错过路由)

每次都使用路线并渲染 cpanel_nav 和 cpanel_body 吗?

谢谢帮助

4

1 回答 1

1

您可以告诉 Meteor 不要使用preserve重新渲染模板的一部分:

您可以在重新渲染期间“保留”一个 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 回答