2017-02-21 77 views
1

您推薦在路由之間傳遞消息的是什麼?我想得到的是:EmberJS:路由之間傳遞數據

  • 註冊頁面,您可以在應用程序中註冊自己。
  • 如果註冊過程正常,應用程序會將您重定向到登錄頁面,但它應該顯示帶註冊響應的消息。 我的意思是,如果您從註冊頁面重定向到達登錄頁面,它應該顯示註冊消息。如果您直接訪問該頁面,則不應顯示任何內容。

我想過爲登錄路由創建一個新路徑(signup_confirmation)。在那裏,如果路徑是signup_confirmation,它將顯示消息。

想法?

預先感謝您!

+0

看一看[這個問題](http://stackoverflow.com/questions/39286750/passing-parameters-between-routes-in-ember-2-x)和[此討論](https://discuss.emberjs.com/t/how-to-pass-parameters-between-different-routes-in-ember-2-x/12095)。 – ykaragol

+0

謝謝! @ykaragol。最後,我只需要傳遞一個變量,所以我使用了查詢參數。 –

回答

2

您的選擇:

  1. 添加signupMessage屬性login控制器,然後在signup控制器injectlogin控制器和登記後成立的signupMessage值。然後你可以在login模板中顯示它(當用戶離開login路線時,請不要饒恕這個屬性,deactivate路線的事件應該對此有所幫助)。
  2. 創建一個service,memoryStorage來存儲可以從不同地方訪問的數據。在signup控制器中,您可以設置一條消息,並從login控制器獲取並顯示(並從memoryStorage當然刪除)。
  3. 使用Flash消息,無論現在哪條路線處於活動狀態,都將在頁面某處顯示幾秒鐘。 ember-cli-flash是這個解決方案的一個很好的插件。
2

根據您的要求,該服務是在不同應用程序狀態之間共享數據的好地方。

Ember.Service是一個Ember對象,它在應用程序的整個過程中生存,並且可以在應用程序的不同部分中使用。

服務對需要共享狀態或持久連接的功能很有用。服務的示例使用可以包括:

  • 用戶/會話認證。
  • 地理位置。
  • WebSockets。
  • 服務器發送的事件或通知。
  • 服務器支持的API調用可能不適合Ember數據。
  • 第三方API。
  • 記錄。

https://guides.emberjs.com/v2.11.0/applications/services/

相關問題