基于反应变量的流星链接不起作用
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;
}
试一试,让我知道结果如何。
我尝试创建一些适应当前 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;
}
试一试,让我知道结果如何。