我有一个使用Meteor构建的应用程序,它使用Iron Router。我的布局使用了多个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 :(得分:0)
您将selectedTask
作为单个对象返回(使用findOne
),但在taskDetail
模板中,您使用的是{{#each selectedTask}}{{detail}}{{/each}}
。如果您只是将{{detail}}
作为该模板的正文,会发生什么?
答案 1 :(得分:0)
很抱歉,这两种方法现在对我有用。我必须有一个错误的模板名称或类似的东西。
您可以拥有多个数据源,如上例所示。