簡體   English   中英

angular2流星項目中兩個組件之間的傳遞值

[英]Passing value between two components in angular2-meteor project

我正在使用angular2-meteor。

當我嘗試在兩個組件之間傳遞值時(當第一個組件中的值更改時,在第二個組件中創建一個事件並使用此新值),我現在有兩種方法:

  1. 一種方法是流星方法:使用this.autorunSession.get
  2. 另一種方式是angular2方式:將Injectable服務與EventEmitter一起EventEmitter

哪種方式應該優先? 還是還有其他更好的方法? 謝謝

現在我使用了angular2流星。

盡管angular2-meteor教程到目前為止還沒有使用或選擇Angular 2服務Meteor Session的示例。

但是我感覺到Angular 2在前端處於領先地位,而流星使反應性變得更容易並且還處理了所有后端事務。

因此,我使用angular2方式使用服務在組件之間共享。 服務非常強大,就像@ todd-w-crone所說。

如果有更好的答案,我將轉而接受該答案。

我發現創建一個名為App.states.ts的新服務非常實用,該服務可全局訪問並模仿Session(獲取/設置)。 我通常將此服務導入所有必要的組件,以獲取或設置新值,例如User.status,company.profile,lastProduct等。

由於此服務是@injectable因此如果尚未設置值,它也可以利用其他服務。 這允許我在組件appState.getLastModifiedItem()請求一個變量,然后在app.states.ts我將編寫此函數以傳遞this.modifiedItem或:

  • 請求另一個服務item.service.ts來獲取數據
  • 使用itemCollection.findOne({...})調用另一個函數並返回該值。

您可以根據需要配置Mongo查詢,或者將靜態數據存儲在appState或者將訂閱項目保留在appState中。

請考慮到組件中由@injectable處理的所有訂閱都是由此類組件導入的。 注意組件/服務之間的預訂沖突。

暫無
暫無

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

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