2017-02-21 14 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. はその後signupコントローラinjectloginコントローラで、loginコントローラにsignupMessageプロパティを追加し、登録後signupMessageの値を設定します。その後、loginテンプレートに表示することができます(ユーザーがloginルートから離れるときにこのプロパティをクリアすることを怠ることはありません。deactivateルートイベントがこれに役立つはずです)。
  2. service,を作成して、異なる場所からアクセスできるデータを格納します。 signupコントローラでは、メッセージを設定し、loginコントローラからそれを取得して表示します(もちろん、memoryStorageから削除できます)。
  3. フラッシュメッセージは、現在アクティブなルートに関係なく、ページのどこかの数秒間表示されます。 ember-cli-flashはこの解決策の良いアドオンです。
2

あなたの要件に基づいて、サービスはさまざまなアプリ状態の間でデータを共有するのに最適な場所です。

Ember.Serviceは、アプリケーション期間中存続するEmberオブジェクトであり、アプリケーションのさまざまな部分で利用できるようにすることができます。

サービスは、共有状態または永続的接続が必要な機能に役立ちます。サービスの使用例としては、

  • ユーザ/セッション認証があります。
  • ジオロケーション。
  • WebSockets。
  • サーバーが送信したイベントまたは通知。
  • Ember Dataに適合しない可能性のあるサーバーベースのAPI呼び出し。
  • サードパーティのAPI。
  • ロギング。

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

関連する問題