我在一个网站,我在DB搜索字符串/而来后,在根域工作。我在文档中找不到任何关于它的信息。 我想使它与Iron Router一起工作,但任何其他建议都可以解决。如何获得在domain.com/keyword的“关键字”与铁路由器
感谢您的帮助!
编辑:基本上我只是想将domain.com/后的任何内容传递给变量。
我在一个网站,我在DB搜索字符串/而来后,在根域工作。我在文档中找不到任何关于它的信息。 我想使它与Iron Router一起工作,但任何其他建议都可以解决。如何获得在domain.com/keyword的“关键字”与铁路由器
感谢您的帮助!
编辑:基本上我只是想将domain.com/后的任何内容传递给变量。
这里的东西我一直在做,所以也许它会导致你在正确的道路
路线发送URL params
到ownedGroupList
模板
Router.route('/users/:_id/groups', {
name: 'owned.group.list',
template: 'ownedGroupList',
data: function() {
return {params: this.params};
}
});
模板ownedGroupList
可以使用this.data
访问params
对象onCreated
,onRendered
和onDestroyed
模板事件处理程序
Template.ownedGroupList.onCreated(function(){
this.subscribe("owned-groups", this.data.params._id);
});
模板ownedGroupList
可以在辅助方法访问params
通过this
可变
Template.ownedGroupList.helpers({
groups: function() {
return Groups.find({owner: this.params._id });
}
});
模板ownedGroupList
可以在事件处理程序访问params
通过template.data
可变
Template.ownedGroupList.events({
'click .a-button': function(event, template) {
var group = Groups.findOne({owner: template.data.params._id });
// do something with group
}
});
这里有一个简单的路由应该做的伎俩
Router.route('/:keyword', {
name: 'keyword',
template: 'keywordTemplate',
data: function() {
return this.params.keyword;
}
});
这会将关键字作为数据上下文传递给您的模板,然后您可以随心所欲地执行任何操作。或者,您可以直接在路由器中执行搜索(特别是如果您将关键字传递给订阅以便搜索在服务器上运行)。例如:
Router.route('/:keyword', {
name: 'keyword',
template: 'keywordTemplate',
waitOn: function(){
return Meteor.subscribe('keywordSearch',keyword);
},
data: function() {
return MyCollection.find();
}
});
这第二个模式将您的关键字发送到一个名为keywordSearch
订阅,将在服务器上执行。当订阅准备就绪时,路由的data
函数将运行,并且传递到您的keywordTemplate
的数据上下文将是MyCollection
中提供的任何文档和字段。
'route(/:keyword',handler)'有什么问题? –
感谢您的回答!我如何将'关键字'传递给一个全局变量,这样我就可以在我的项目中使用它了? – Mark
编辑并感谢。 – Mark