簡體   English   中英

如何使用流星綁定客戶端對象上的服務器端事件,反之亦然

[英]How to bind server side events on client objects and vice versa with meteor

是否可以將服務器端事件直接綁定到流星中的客戶端對象?

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

我可以將Meteor#方法用於所有事件,但這似乎很奇怪。

還是可以例如在客戶端和服務器范圍之外使用EventEmitter來指定事件處理程序,以便它在兩側都可用,並且可以在同一對象上觸發/綁定事件?

一些人對此感到困惑,我感謝您提出了正確方向的提示。

問候菲利克斯

更新:

如果應該將用戶事件映射到服務器端操作,則使用Meteor#方法非常有用。 另一方向尚不清楚。 服務器端的異步操作可以將其結果持久保存在客戶端發布/訂閱的集合中,由於響應上下文,該集合又可以更新某些視圖。 但這很奇怪,導致持久存在此類信息緩慢,浪費了空間和時間。 有什么建議么?

我相信您可以在服務器端使用Collection.observe來“觀察”集合上的事件,因為客戶端正在插入,更新,刪除等。如果您僅關注集合,那可能是一個開始。 我將其用作一種服務器端事件循環來監視集合更改。

當用戶單擊視圖中的某些內容時,請嘗試將模板事件綁定到View CSS選擇器,然后調用Meteor方法,該方法將通知事件。 請參閱將鍵處理程序和/或按鈕處理程序綁定到Template.entry.event的示例,然后調用Meteor方法通知服務器發生了什么事情。

如何在Session中存儲進度? 您可以執行以下操作:

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

然后,無論何時在服務器上更新會話,客戶端模板都會自動獲取這些更改。

出於好奇,您究竟如何在服務器上執行異步操作? 我仍在設法弄清楚。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM