2013-10-26 89 views
0

我对网络开发很陌生,因为它让我能够很酷地开展工作,所以我成为流星的粉丝。我一直在与各方玩弄示范,并为各方添加了日期属性。我只想订阅尚未到期的客户。根据流星中的日期订阅

本质上,其中datenow < partydate。

我发现自己一直在写正确的订阅代码,因为我只找到如何基于数据库属性进行订阅的文档,而不是基于比较派对日期和当前日期。

Meteor.subscribe(“parties”); - >我认为这是我需要编辑的客户端代码的一部分。

我真的希望有人能够在正确的方向上向我展示正确的订阅代码。

+0

如果不是数据库属性,“派对的日期”是什么?这听起来像你需要删除'autopublish'并编写你自己的'发布'功能。如果您没有太多数据,您也可以更改模板并继续使用“自动发布”。 – user728291

回答

0

客户端订阅服务器愿意发送给他们的内容。

if(Meteor.isClient){ 
    Meteor.subscribe("parties"); 
} 

服务器过滤客户端不应该拥有的数据,通常出于安全原因。你不希望密码或私人信息被发布。任何客户端都可以打开控制台并浏览发布给他们的完整数据集。

if(Meteor.isServer){ 
    Meteor.publish("parties", function(){ 
    return Parties.find({date: {$gt: Date.now()}}); 
    }); 
} 

如果你希望客户能够看到双方当事人已到期和未到期的当事人,你会从服务器发布整套,然后在模板助手过滤它在客户端上。

if(Meteor.isServer){ 
    Meteor.publish("parties", function(){ 
    return Parties.find(); 
    }); 
} 
if(Meteor.isClient){ 
    Meteor.subscribe("parties"); 
    Template.templateName.allParties = function(){ 
    return Parties.find(); 
    } 
    Template.templateName.activeParties = function(){ 
    return Parties.find({date: {$gt: Date.now()}}); 
    } 
}