[英]Passing value between two components in angular2-meteor project
我正在使用angular2-meteor。
當我嘗試在兩個組件之間傳遞值時(當第一個組件中的值更改時,在第二個組件中創建一個事件並使用此新值),我現在有兩種方法:
this.autorun
和Session.get
。 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.