【问题标题】:Meteor programmable templates or wildcard templatesMeteor 可编程模板或通配符模板
【发布时间】:2012-11-21 09:46:25
【问题描述】:

我想对屏幕上的多个聊天室实例使用相同的代码。

假设我想同时在屏幕上显示 6 个聊天室,但每个聊天室都使用相同的模板,呃,模板,但实例不同,但仍然能够以 Meteor 的方式独立做出反应。

我该怎么做这样的事情?

【问题讨论】:

    标签: templates meteor handlebars.js


    【解决方案1】:

    您可以拥有一个collection 的聊天室,并使用each 帮助器来迭代每个当前的聊天室。在该迭代器内部,您将拥有另一个 chatroom 模板。然后,您实际上会为多个聊天室使用相同的模板。这是 Meteor 非常常见的设计模式。

    <template name='chatrooms'>
      {{#each chatrooms}}
        {{>chatroom}}
      {{/each}}
    </template>
    
    <template name='chatroom'>
      <div class='room'>
      {{name}}
      <ul>
       {{#each messages}}
        <li>{{text}}</li>
       {{/each}}
      </ul>
      </div>
    </template>
    

    【讨论】:

    • 但是如果我不想将聊天室放在同一个容器中,而是放在不同的地方怎么办?例如,我在弹出窗口中有一个聊天室,或者我可以将它放在侧边栏中,或者根据各种设置嵌入到主要内容中?
    • 您可以通过在不同的上下文中调用模板来重用模板。因此,在您的弹出窗口中,您仍然可以使用{{&gt;chatroom}} 嵌入模板。在弹出模板中,您可以使用{{#with}} 指定您正在处理的聊天室。我认为那行得通...
    猜你喜欢
    • 1970-01-01
    • 2015-01-06
    • 2014-12-12
    • 1970-01-01
    • 2013-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 2013-04-09
    相关资源
    最近更新 更多