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



我尝试创建一些适应当前网址的链接,所以当我的当前网址是"object/layout1...."时,我的链接也应该是这样的,当网址像"object/layout2"时,链接应该是"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());
  });
});

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

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

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

是的,我正在使用流路由器

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

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

如果你仍然需要在flowrouter中reactive,文档说FlowRouter.getParam((是反应式的,所以,你可以再次摆脱所有的onCreated((代码,只使用它:

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

试一试,让我知道进展如何。

最新更新