流星铁路 - 我可以在路由中拥有多个数据源吗?

4
我有一个使用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>

如果我的数据是这样的,它会执行相同的操作... data: { tasks: [{detail: 'foo'}, {detail: 'foo'}], selectedTask: [{detail: 'bar'}, {detail: 'bar'}] } - kbascombe
2个回答

0

您正在使用findOneselectedTask作为单个对象返回,但在taskDetail模板中,您使用了{{#each selectedTask}}{{detail}}{{/each}}。如果您只是将{{detail}}作为该模板的主体会发生什么?


0

抱歉,现在这两种方法都对我有效。我可能使用了错误的模板名称或类似的内容。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接