我使用铁路线,在我的路由器中,我有以下内容来渲染特定模板
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
,这意味着我在这里尝试的并不起作用。有关如何将数据传递给模板的任何建议吗?
答案 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
模板。模板状态应该由模板助手真正处理。