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

时间:2014-01-26 15:58:02

标签: meteor iron-router

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

很抱歉,这两种方法现在对我有用。我必须有一个错误的模板名称或类似的东西。

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