我在流星有兩個集合,並試圖加入它們。如收藏品/ collections.js中所定義的加入使用鐵路路由器的流星集合
Producers = new Mongo.Collection('producers');
Projects = new Mongo.Collection('projects');
從概念上講,一個生產者具有0到多個項目。一個項目必須有一個生產者。因此,ProducerID字段位於Mongo中的每個Project文檔(行)中。我用數據爲Mongo數據庫播種。
當我顯示用於查看Projects的模板時,我希望它可以訪問Producer的屬性。
鐵路由器的配置(在/app.js),我有
Router.route('project', {
path: '/project/:name',
template: 'project',
waitOn: function() {
return Meteor.subscribe('ProjectInfo', this.params.name);
},
data: function() {
return Projects.find();
}
});
我有兩個發佈服務器上(在/server/publish.js):
Meteor.publish("ProjectInfo", function(projectName) {
return Projects.find({name: projectName});
});
Meteor.publish("ProducerInfo", function(producerid) {
return Producers.find({_id: producerid});
});
問題1: 如何加入?我絕對不希望只將生產者數據放入每個項目中,因爲當生產者數據發生變化時,它更難更新數據庫。
問題2: 爲什麼Iron Router需要一個「data:」字段,當它在waitOn中已經有一個Subscribe時?
data: function() {
return Projects.find();
}
在此先感謝。
我看你一直在廣告'cottz:發佈與 - relationsh',但它在一個dubio我們說。 [1](https://github.com/svasva/meteor-publish-with-relations/issues/25),[2](https://github.com/Goluis/cottz-publish/issues/2)。 [reywood:publish-composite](https://github.com/englue/meteor-publish-composite/issues/6)是一個更強大的軟件包。另見[流星中的反應性連接](https://pinboard.in/u:dandv/b:037c63e28cb7)。 – 2015-02-11 23:59:00
每時每刻都有一個關於連接的問題,這就是我現在使用的,但是我會查找你發佈的包 – Sindis 2015-02-12 00:17:45