如何生成一个唯一的链接,该链接将加载与客户端可用的某些文档的会话?

时间:2013-11-17 18:49:27

标签: javascript meteor

对不好的措辞感到抱歉。

基本上,我希望能够生成指向页面的链接,该链接将加载某些文档的会话。

例如,Links.find()会返回客户端A Links.find({clientName:"A"})。现在,客户端A希望将这一系列元素发送给他的朋友,并希望通过向他发送一个链接来加载可以看到Links.find({clientName"A"})的客户端实例。

任何输入都会非常感激。

1 个答案:

答案 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,等等。