2012-05-06 49 views
2

是否有可能直接將服務器端事件綁定到流星中的客戶端對象?如何綁定客戶端對象上的服務器端事件,反之亦然使用流星

我想更新一個視圖,例如當一個服務器端事件觸發。另一方面,我想在用戶點擊查看項目時觸發服務器端方法。

我可以使用Meteor#methods所有的事件,但這似乎很奇怪。

或者我可以指定一個事件處理程序,例如在客戶端和服務器範圍外使用EventEmitter,以便它在兩側都可用,並觸發/綁定事件ob,即非常對象?

有些困惑,我感謝提示正確的方向。

問候 菲利克斯

更新:

使用流星#方法工作的情況下,用戶大事件應該被映射到服務器端的操作。另一種方式仍然不清楚。服務器端的異步操作可以將它們的結果保存在發佈到客戶端的集合中,這反過來可以由於反應性上下文而更新某個視圖。但這很奇怪,導致堅持這種信息很慢,浪費空間和時間。有什麼建議麼?

回答

0

在Session中存儲進度如何?你可以做這樣的事情:

Template.progress.value = function() { 
    return Session.get('progress'); 
} 

之後,當更新服務器上的會話,客戶端模板將自動獲得這些變化。

出於好奇,您如何在服務器上執行異步操作?我仍然試圖弄清楚。

1

我相信你可以使用服務器端的Collection.observe上收集到「觀察」事件客戶端插入,更新,刪除,等等...如果你是獨自專注於收藏這也許是一個開始。我用它像一種服務器端事件循環來觀察收集的變化。

當用戶點擊視圖中的某些內容時,嘗試將一個模板事件綁定到View css選擇器,然後調用一個Meteor方法來通知服務器該事件。查看將鍵處理程序和/或按鈕處理程序綁定到Template.entry.event的示例,然後調用Meteor方法通知服務器發生了某些事情。

+0

Steeve,thx爲您的答案。流星#方法非常適合客戶端 - >服務器。但另一方面呢。例如,我在服務器端遍歷RESTful API端點,並希望在客戶端上顯示一些進度(同步資源數量)。來自你方的任何建議? – GeorgieF

+0

@GeorgieF我不知道我完全理解你。我假設您希望客戶端能夠查看有多少端點正在使用或與其他客戶端同步?如果是這樣,請像記錄一樣實現它,並讓客戶端想要觀察訂閱日誌事件表並按資源端點和操作進行過濾。 –

+0

當前的設置完全如此。我的代碼的服務器部分遍歷一個RESTful API,並將大量數據傳輸到Meteor服務器,並保存它。在這個過程中,我想在客戶端上顯示一些進度信息。因此我創建了一個服務器端集合,將其發佈並訂閱到客戶端。這是有效的,但是每當一個API樹的葉子被持久化時,就會在服務器端產生許多寫操作。如果有一些可以發佈到客戶端的內存對象,會不會很好?不是有什麼嗎? – GeorgieF

相關問題