使用Router.go设置模板数据上下文

时间:2015-12-09 13:14:54

标签: meteor iron-router

使用铁路由器,我可以像这样设置模板的数据上下文:

Router.route('hello', {data: {greeting: 'hello'}})

所以,如果我的hello.html看起来像这样:

<template name="hello">
  <h1>{{greeting}}</h1>
</template>

我按照预期得到了一个页面,上面写着你好

问题: 我可以使用Router.go()执行此操作吗? 根据我所读到的,这应该有效:

Router.go('hello', {greeting: 'Whazaaaaaaa'})

但我得到的只是一个无聊的你好。是否可以这种方式设置数据?如果Router.go中的第二个参数不是数据,那么它的用途是什么?

1 个答案:

答案 0 :(得分:0)

是的,应该有用。第二个参数作为参数传递给路由函数,因此您需要相应地设置该参数。试试这个:

Router.route('/hello/:greeting', {
  template: 'hello',
  data: function() {
    return {greeting: this.params.greeting};
  }
});

现在你可以打电话:

Router.go('hello', {greeting: 'Whazaaaaaaa'})