4

我有一个使用 Iron Router 的 Meteor 构建的应用程序。我的布局使用多个收益模板,我想将不同的数据传递给每个模板。

它成功地将任务传递给 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>
4

2 回答 2

0

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

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

于 2014-01-29T19:07:45.420 回答
0

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

于 2014-01-26T18:00:49.057 回答