基于反应变量的流星链接不起作用

Meteor links based on reactive var not working

我尝试创建一些适应当前 url 的 link,所以当我当前的 url 是 "object/layout1...." 时,我的 link 应该也是这样,当 url 像 "object/layout2" 时,link 应该是 "object/layout2.."。因此,我创建了这段代码,它应该将当前布局保存在一个反应​​变量中,并且应该在 url 更改时由于自动运行而刷新。这部分工作正常:

Template.templateName.onCreated(function(){
  //Save parameter layout in reactive var so it can be accessed by helper
  this.getParam = () => FlowRouter.getParam('parameter');

  this.autorun(() => {
    this.layout = new ReactiveVar(this.getParam());
  });
});

问题是助手 return 新的 link 没有更新。加载页面时,有正确的 link,但更改 url 后 link 没有任何变化。这里是帮助程序的代码:

'returnLink':function(postId) {
    return '/object/' + Template.instance().layout.get() + '?firstList=' + postId;
  }

我错过了什么,为什么 link 没有在我的布局中更新? 我在布局中使用助手,就像 <a href="{{returnLink this._id}}">My new Link</a>

是的,我正在使用 flowrouter

首先,如果您希望 URL 成为 /object/layout1/... 当您在 /object/layout1 时,您可以使用相对 URL并删除所有 onCreated() 代码,如下所示:

'returnLink':function(postId) {
    return '?firstList=' + postId;
}

如果您仍然需要在 flowrouter 中响应,文档说 FlowRouter.getParam() is reactive,因此,您可以再次摆脱所有 onCreated() 代码,只需使用这个:

'returnLink': function (postId) {
    return '/object/' + FlowRouter.getParam('parameter') + '?firstList=' + postId;
}

试一试,让我知道结果如何。