由于铁路由器文档几乎无用,创建者过去常常在问题解决之前关闭(现在显然放弃了,只是让他们坐在那里),这是一个我无法找到解决方案的问题对
我需要设置一个看起来像这样的动态查询:
/person?name=Johnny
在完美的世界中,这将以这种方式实现:
<a href="{{pathFor 'person' query='name=' + this.name}}">
除非这不是一个完美的世界(毕竟我们在谈论铁路由器),所以我该如何实际做到这一点?
答案 0 :(得分:1)
首先我要先做好这件事:
meteor remove passive:aggression
这应该有所帮助。
其次,您或多或少要做的就是将用户的ID传递给iron:router,然后让它查询具有匹配ID的用户的数据库。一旦你有了帐篷,他就会在铁中使用对象:路由器,你将能够将你想要的任何值打印到网址中。
Meteor Chef的这个教程非常适合做与你正在寻找的事情相似的事情Slugged Routes
答案 1 :(得分:0)
这是一个简单的铁路:路由器动态路由:
Router.route('/person/:name',{
name: 'person',
layoutTemplate: 'layout',
data: function(){ // called once the subscription is ready
return People.findOne({ name: this.params.name });
},
waitOn: function(){
return Meteor.subscribe('getPerson',this.params.name); // assumes you need to ask the server for the document since you probably won't publish all people to every client
}
});
该路线将以/person/name
而非参数列表样式/person?name=
答案 2 :(得分:0)
您可以使用以下内容将查询参数传递到路径:
{{pathFor 'person' query='name=Johnny'}}
或者传递一个像这样的辅助函数的值
Template.myTemplate.helpers({
helperVal: function(){
return "name="+this.name;
}
});
//in template
{{pathFor 'person' query=helperVal}}
然后在路线中自行检索......
this.params.query.name