我正在一个网站上工作,我必须在数据库中搜索在根域上/后面的字符串。我在文档中找不到任何相关内容。 我试图让它与Iron Router一起使用,但任何其他建议都可以解决。
感谢您的帮助!
编辑:基本上我只想将域名之后的任何内容传递给变量。
答案 0 :(得分:1)
这是我一直在做的事情,也许它会带领你走上正确的道路
路由将网址params
发送到ownedGroupList
模板
Router.route('/users/:_id/groups', {
name: 'owned.group.list',
template: 'ownedGroupList',
data: function() {
return {params: this.params};
}
});
模板ownedGroupList
可以使用params
,this.data
和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
}
});
答案 1 :(得分:1)
这是一个应该做的诀窍的简单路线
Input.GetMouse
这会将关键字作为数据上下文传递给您的模板,然后您就可以随意执行任何操作。或者,您可以直接在路由器中执行搜索(特别是如果您将关键字传递给订阅,以便在服务器上运行搜索)。例如:
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
中提供的任何文档和字段。