2013-10-26 129 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()}}); 
    } 
}