我尝试创建一些适应当前网址的链接,所以当我的当前网址是"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;
}
试一试,让我知道进展如何。