我正在構建的應用程序有一個遊戲集合。這個集合中的每個對象都有大量的數據與它相關聯。在爲每個用戶列出遊戲時,我必須限制發送給它的字段。這是所有常見的東西,工作正常。問題出現在我想要獲得更多特定遊戲領域的時候,例如當我進入其頁面時,我需要的不僅僅是描述和名稱。使用流星的發佈 - 訂閱獲取更多字段爲minimongo對象
遊戲列表的發佈如下,後面是發佈我試圖用來更新所有字段的文檔。
Meteor.publish('games', function() {
return Games.find({owner: this.userId}, {fields: {
name: 1,
description: 1
}});
});
//Publish all the fields for the given game
Meteor.publish('game', function(gameId) {
return Games.find({_id: gameId});
});
我的流星發佈訂閱功能的理解是,第二次發佈將更新遊戲minimongo集錦,讓新字段集合中的對象。
但是我的理解似乎有缺陷,或者我的實現有些問題是錯誤的。
當我在列表頁面上登錄遊戲集合console.log(Games)
時,我訂閱「遊戲」發佈。我得到了我的預期,這是一個包含當前用戶擁有的所有遊戲的集合。所有文件只有預期的名稱和說明。
當我去遊戲頁面,在那裏我訂閱'遊戲'。該集合意外改變。當我做與上面相同的日誌時,我得到一個只有一個對象但擁有所有字段的集合。這不是我所期望的,但它適用於我所需要的。
問題出現在此之後。當我做客戶端選擇(below)在minimongo colleciton。我得到一個只有描述和名稱的對象。
game:() => {
return Games.findOne({_id: $stateParams.gameId});
}
我上有所有我想要的域對象的colleciton做一個尋找,卻選擇只返回對象有我預先定義的兩個領域。
我迷失在如何讓這個工作,以及我所面臨的問題是拋出我的理解流星窗外的發佈訂閱功能。
如果需要
任何意見或建議,試試我可以在瀏覽器控制檯添加集合對象的一些截圖?
編輯:這裏有兩個學家與我的角度compenets,顯示訂閱:
遊戲:https://gist.github.com/Jiig/f9577469d868a3165221
遊戲:https://gist.github.com/Jiig/70dce515581ce12beb6f
你使用鐵路由器嗎? –
@MichelFloyd不,在客戶端上使用帶角度的ui路由器。 – Jiig
這一切都來自您正在訂閱的內容以及呈現了哪個模板(假設您正在'template.onCreated'上訂閱)。您可以分享顯示訂閱的模板樣本嗎? – lucascurti