2017-02-03 119 views
0

我有一個問題我刪除了自動發佈,現在我想重新訂閱我的收藏品,但它不工作;(如何流星訂閱集合

這裏是我的兩個集合的lib代碼:

Events = new Mongo.Collection('events'); 
Friends = new Mongo.Collection('friends'); 

然後我的服務器main.js

import { Meteor } from 'meteor/meteor'; 

Meteor.startup(() => { 
    // code to run on server at startup 



}); 

if (Meteor.isServer) { 
    Meteor.publish("events", function() { 
     return events.find(); 
    }) 
    Meteor.publish("friends", function() { 
     return friends.find(); 
    }) 
} 

,並最後在main.js我的客戶端代碼在客戶端

import { Template } from 'meteor/templating'; 
import { ReactiveVar } from 'meteor/reactive-var'; 

import './main.html'; 

Meteor.subscribe("events"); 
Meteor.subscribe("friends"); 

我正在流星1.4,我的問題是我無法從集合

在這裏得到的信息是一些代碼,與自動發佈已經工作

Template.NeuesEvent.events({ 
    "submit .add-event": function(event){ 
     var Name = event.target.name.value; 
     var Beschreibung = event.target.beschreibung.value; 
     var Datum = event.target.Datum.value; 
     var Autor = Meteor.userId(); 
     var eingeladene = []; 
      $.each($('.FreundeCheckbox:checked'), function(){    
       eingeladene.push($(this).val()); 
      }); 


     if (Name == "") 
     { 
      confirm("Das Event braucht einen Namen ;)") 
     } 
     else { 

     Events.insert({ 
      Name: Name, 
      Beschreibung: Beschreibung, 
      erstelltAm: new Date(), 
      Datum: Datum, 
      Eingeladen: eingeladene, 
      Autor: Autor 
     }); 

     event.target.name.value = ""; 
     event.target.beschreibung.value = ""; 
     FlowRouter.go('/meineEvents'); 

     return false; 
    } 
    } 
}); 

和幫手「打印」它出

Template.meineEvents.helpers({ 
    event: function(){ 
     return Events.find({}, {sort: {createdAt: -1}}); 
    } 
}); 

希望你能幫助我修改它,它再次工作感謝;)

+0

希望你明白@zim在說什麼......你應該把你的集合導出到它們定義的文件中,然後像導入它們一樣流星:從相對/路徑導入{Events} /到/文件';'。 – chazsolo

回答

0

你要引用的符號,而不是集合名稱,像這樣:

if (Meteor.isServer) { 
    Meteor.publish("events", function() { 
     return Events.find(); 
    }) 
    Meteor.publish("friends", function() { 
     return Friends.find(); 
    }) 
} 

編輯:

你說你有這些集合:

Events = new Mongo.Collection('events'); 
Friends = new Mongo.Collection('friends'); 
被他們定義,其中

?它們對客戶端和服務器都可用嗎?他們是否在任何名爲「/進口」的文件夾下?如果是這樣,那麼他們並不急於加載,你需要導出/導入這些符號。

編輯2:

接下來的事情是檢查,看看數據是否公佈。最簡單的方法就是安裝meteortoys:allthings(https://atmospherejs.com/meteortoys/allthings),看看數據是否已經到達客戶端。如果沒有,那麼我會檢查以確保您提供的subscribe()行與NeuesEvent模板相關聯。

我通常做我的訂閱模板,像這樣:

Template.NeuesEvent.onCreated(function() { 
    this.subscribe('events'); 
    this.subscribe('friends'); 
}); 

...但它取決於你的使用情況。在這裏,只要NeuesEvent模板處於活動狀態,這些訂閱就會處於活動狀態。當您切換到其他模板時,訂閱將結束。

+0

可能是有幫助的,他應該出口/進口的收藏以及 – chazsolo

+0

沒有幫助;( – Michael

+0

你是什麼意思chazsolo? – Michael