meteor:带参数的渲染模板

时间:2014-05-02 14:50:48

标签: javascript meteor

我使用铁路线,在我的路由器中,我有以下内容来渲染特定模板

var Home = RouteController.extend({
    ....
    action: function () {
        if (this.ready()) {
          this.render('main', {state: 'normal'});
        }
        else {
          ;//this.render('loading');
        }
    }
});

如您所见,我想将state变量传递给class属性中使用的模板,如下所示

<template name="main">
    <section class="{{state}}">
        ....
    </section>
</template>

然而,这个状态变量是undefined,这意味着我在这里尝试的并不起作用。有关如何将数据传递给模板的任何建议吗?

1 个答案:

答案 0 :(得分:1)

我认为使用数据选项是您最好的选择。

var Home = RouteController.extend({
    data:{state:'normal'},
    action: function () {
        if (this.ready()) {
          this.render('main');
        }
        else {
          ;//this.render('loading');
        }
    }
});

数据也可以是一个函数,如果它包含一个被动数据源,每次数据发生变化时都会重新运行。

虽然有几个笔记。如果您为路由定义了loadingTemplate并且正在等待返回您的订阅..铁路由器将处理为您呈现加载模板。

此外,数据选项旨在返回单个文档,当不存在时,iron-router将为该路由呈现notFound模板。模板状态应该由模板助手真正处理。