我使用this tutorial來構建我自己的離子/流星/角度應用程序,並且我達到了刪除自動發佈和不安全的程度,進入發佈和訂閱我的數據的程度。流星中的化合物集合
我有我的流星應用的兩個蒙戈集合在lib/collections.js
:現在我用下面的掙扎
Players = new Mongo.Collection('players');
Teams = new Mongo.Collection('teams');
玩家有一個_id
和name
,一支球隊有一個_id
和數組兩(沒有更多)球員:["someplayerId", "someotherPlayerId"]
在服務器上我有出版物目前正與它下面server/publications.js
:
Meteor.publish('players', function() {
return Players.find({});
});
Meteor.publish('teams', function() {
return Teams.find({}, {transform: function(doc) {
var playerOne = Players.findOne({ _id: doc.players[0]._id });
var playerTwo = Players.findOne({ _id: doc.players[1]._id });
doc.playerOne = playerOne;
doc.playerTwo = playerTwo;
return doc;
}
});
});
在我client/routes.js
我訂閱我的國家之一,這些出版物,這樣我可以在我的客戶端代碼中使用它們:
.state('tab.settings', {
url: '/settings',
views: {
'tab-settings': {
templateUrl: 'client/templates/settings.html',
controller: 'SettingsCtrl as settings',
resolve: {
teams() {
return Meteor.subscribe('teams');
},
players() {
return Meteor.subscribe('players');
}
}
}
}
});
現在我想用的球隊在我的代碼,但無論我做什麼我似乎錯過在得到這種化合物的數據點
這將返回一個錯誤,因爲變量playerOne和playerTwo是不確定的:
this.helpers({
players:() => {
return Players.find({});
},
teams:() => {
return Teams.find({}, {transform: function(doc) {
var playerOne = Players.findOne({ _id: doc.players[0] });
var playerTwo = Players.findOne({ _id: doc.players[1] });
doc.playerOne = playerOne.name;
doc.playerTwo = playerTwo.name;
return doc;
}
});
}
});
在我的模板01
某處我想要使用團隊,並將其轉換爲文檔。如何才能做到這一點?
感謝您的澄清。在angular-meteor包中是否有'subscriptionsReady'等價物? – tuvokki
好的,再次回答我自己的問題...在angular-meteor包中有一個'subscriptionsReady'等價物,用於訂閱:'this.subscribe('publication',[args],{onReady:function( )...等等 – tuvokki