如何订阅流星中id为id的集合中的某些记录

时间:2015-08-20 09:26:21

标签: mongodb meteor

我是meteor的新手,我有两个名为Employee和Visitors的集合。还有两个模板Home和Print。我可以从这个按钮中获取记录的ID。

printVisitor:function(){
    return Visitor.findOne({_id:Session.get('UpdateVisitorId')});
}

现在,当我点击重定向到另一个页面的按钮时,我需要打印这些值,使用我可以从上面的代码获得的特定记录ID来说出姓名,电话号码。 我的路线代码看起来像这样

Router.route('/print/:_id', {

名称:' print',   控制器:' PrintController',   行动:'行动',   其中:'客户' });

我的打印html就是这个

<template name="Print">

This is: {{VisitorName}}
Visiting:{{EmployeeName}}
Phone:{{PhoneNumber}}

我如何发布和订阅并打印那个id的某些值

1 个答案:

答案 0 :(得分:1)

发布和订阅可以带参数。您还希望使用this.params来获取网址参数。这是一般模式

Router.route('/foo/:_id', {

    name: 'foo',
    waitOn: function(){
      // this grabs the ID from the URL
      var someId = this.params._id;
      // this subscribes to myPublication while sending in the ID as a parameter to the publication function
      return [
        Meteor.subscribe('myPublication', someId)
      ]
    }

});


/server/publications.js

Meteor.publish('myPublication', function(id){
  check(id, String);
  return MyCollection.findOne({_id: id});
});

您现在可以访问您在此路线上订阅的数据。