对不好的措辞感到抱歉。
基本上,我希望能够生成指向页面的链接,该链接将加载某些文档的会话。
例如,Links.find()
会返回客户端A Links.find({clientName:"A"})
。现在,客户端A希望将这一系列元素发送给他的朋友,并希望通过向他发送一个链接来加载可以看到Links.find({clientName"A"})
的客户端实例。
任何输入都会非常感激。
答案 0 :(得分:1)
将Iron Router添加到您的项目中。然后创建一个将相关查询放入URL的路径(例如,在客户端加载的JavaScript文件中):
Router.map(function () {
this.route('client', {
path: '/client/:_clientName',
before: function () {
this.subscribe('client', this.params._clientName).wait();
}
}
}
然后像http://yourapp.com/client/A这样的URI会导致客户端模板呈现(默认情况下,它使用与路由名称相同的名称,除非您指定其他名称)订阅<使用“A”作为订阅参数的em> client 订阅。这将在服务器端配对:
Meteor.publish('client', function (clientName) {
// Clients is a Meteor collection
return Clients.find({clientName: clientName});
});
这就是如何在生成链接后处理它们。至于创建它们,只需向后工作:您传递给订阅的查询参数是什么(反过来又被放入对MongoDB的find()
调用中)?确定每一个并编写一些代码,将它们添加到适当的URI中 - 在这种情况下,您的函数只需将“http://yourapp.com/client/”与 clientName连接,在本例中为“A”。显然,可能会有更复杂的路由/ URI和查询,例如http://yourapp.com/events/2012-01-01/2012-12-31具有path
的铁路由器路由/events/:_fromDate/:_toDate
,等等。