我正在使用铁路线,在我的路由器中,我有以下内容来渲染特定模板
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/