使用iron路由器,我可以设置模板的数据上下文,如下所示:
Router.route('hello', {data: {greeting: 'hello'}})
所以如果我的hello.html
看起来像这样:
<template name="hello">
<h1>{{greeting}}</h1>
</template>
不出所料,我收到了一个页面,上面写着你好。
问题:我可以用Router.go()
做这个吗?根据我所读到的,这应该是有效的:
Router.go('hello', {greeting: 'Whazaaaaaaa'})
但我得到的只是一个无聊的你好。可以用这种方式设置数据吗?如果Router.go中的第二个参数不用于数据,那么它用于什么?
是的,应该可以。第二个参数作为参数传递给route函数,因此需要相应地设置该参数。试试这个:
Router.route('/hello/:greeting', {
template: 'hello',
data: function() {
return {greeting: this.params.greeting};
}
});
现在您可以拨打:
Router.go('hello', {greeting: 'Whazaaaaaaa'})