具有静态上下文的铁路由器

时间:2014-03-24 21:43:49

标签: meteor iron-router

我有以下页面:

main.html中

<html>
<body>
   <div>
      [more static content]
      <div id="content"></div>
   </div>
</body>
</html>

tpl1.html

<template name="something">
   [...]
</template>

我想使用Iron-router将“something”模板填充到“content”div中。我找不到一种方法来路由路径只渲染div。我试着做类似的事情:

<div id="content">{{yield}}</div>

但总是结果是:

<html>
<body>
   <div>
      [more static content]
      <div id="content"></div>
   </div>
   [... content from "something" template ...]
</body>
</html>

而不是:

<html>
<body>
   <div>
      [more static content]
      <div id="content">[... content from "something" template ...]</div>
   </div>
</body>
</html>

我想做什么。

我的铁路由器配置是:

Router.map(function () {
    this.route('principal',{
        path:"/someaction",
        template:"something"
    });

¿我该怎么做?谢谢!

2 个答案:

答案 0 :(得分:2)

你基本上拥有它。您 需要的唯一额外代码是在您的div中添加{{yield}}

<html>
<body>
   <div>
      [more static content]
      <div id="content">{{yield}}</div>
   </div>
</body>
</html>

如果你只是读了iron-router github,你应该很快找到一个很好的部分来讨论yield。你甚至可以使用多个。

答案 1 :(得分:0)

问题已解决,将main.html文本放入模板中:

<template name="main">
   <html>
   <body>
     <div>
         [more static content]
         <div id="content">{{yield}}</div>
      </div>
   </body>
   </html>
</template>

并在路由器中:

 this.route('principal',{
    path:"/someaction",
    template:"something",
    layoutTemplate:"main"
 });

这不是我想要的(因为现在的帐户-ui不起作用),但它是:P。

如果有人知道如何完成原始任务,那就太棒了!