javascript - meteor :带有参数的渲染模板

标签 javascript meteor

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

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

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

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

但是,这个状态变量是未定义,这意味着我在这里尝试的方法不起作用。有什么建议如何将数据传递到模板吗?

最佳答案

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

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

data 也可以是一个函数,如果它包含响应式(Reactive)数据源,则每次数据更改时都会重新运行。

不过有一些注意事项。如果您为路由定义了一个 loadingTemplate 并正在等待返回您的订阅..iron-router 将为您处理渲染加载模板。

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

关于javascript - meteor :带有参数的渲染模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23430992/

相关文章:

javascript - 如何在空格键中使用动态对象属性名称?

javascript - meteor :Accounts.createUser() 不创建用户

javascript - 当用户点击时设置背景颜色,当用户点击其他地方时改变背景颜色

javascript - 生成按钮

javascript - 为什么这个递归函数会给我一个 "Maximum call stack size exceeded"错误?

javascript - 我如何与<选项>交互

angularjs - Angular 在 angular.bootstrap 之后添加模块

javascript - 捕获用户输入的 react 变量(Meteor)

javascript - Jsfiddle HTML 滚动表格示例不水平滚动

javascript - 有没有标准的javascript函数可以将字符串转换为电话号码格式,反之亦然?