2014-01-26 39 views
4

我有一个使用流星制造的应用程序,使用铁路路由器。我的布局使用多个yield模板,我想通过不同的数据传递给每个模板。流星铁路由器 - 我可以在路由中有多个数据源吗?

它成功地将任务传递给tasksList模板,但不通过selectedTask传递给taskDetail模板。

是否有可能拥有多个数据源,并且这是正确的方式吗?如果是,那么为什么它不起作用?

在此先感谢! :-)

Router.map(function() { 
this.route('tasksList', { 
    path: '/', 
    layoutTemplate: 'layout', 
    template: 'tasksList', 
    yieldTemplates: { 
     'taskDetail': {to: 'rightTemplate'} 
    }, 
    data: { 
     tasks: function(){ return Tasks.find() }, 
     selectedTask: function() { return Tasks.findOne() } 
    } 
}); 
}); 

<template name="layout"> 
    <section class="wrapper"> 
     <div class="left-pane"> 
      {{yield}} 
     </div> 
     <div class="right-pane"> 
      {{yield 'rightTemplate'}} 
     </div> 
    </section> 
</template> 

<template name="tasksList"> 
    <ul> 
     {{#each tasks}} 
      <li>{{detail}}</li> 
     {{/each}} 
    </ul> 
</template> 

<template name="taskDetail"> 
    {{#each selectedTask}} 
     <div>{{detail}}</div> 
    {{/each}} 
</template> 
+0

它做同样的事情,如果我有数据这样的...'数据:{ \t \t \t任务:[{细节: '富'},{细节: '富'}], \t \t \t selectedTask:[{detail:'bar'},{detail:'bar'}]' \t \t} – kbascombe

回答

0

对不起,现在这两种方法都适用于我。我必须有一个错误的模板名称或类似的东西。

您可以拥有多个数据源,如上例所示。

0

您在返回selectedTask作为一个单一的对象(findOne),但在taskDetail模板,您可以使用{{#each selectedTask}}{{detail}}{{/each}}。如果您仅将{{detail}}作为该模板的主体,会发生什么情况?