EmberJS:在路线之间传递数据

时间:2017-02-21 13:34:36

标签: javascript ember.js

您建议在路线之间传递消息?我想得到的是:

  • 注册页面,您可以在应用程序中注册自己。
  • 如果注册过程正常,应用程序会将您重定向到登录页面,但它应显示带有注册响应的消息。 我的意思是,如果您从注册页面重定向到达登录页面,它应该显示注册消息。如果您直接访问该页面,则不应显示任何内容。

我曾想过为登录路线创建新路径(signup_confirmation)。在那里,如果路径是signup_confirmation,它将显示消息。

思想?

提前谢谢!

2 个答案:

答案 0 :(得分:3)

您的选择:

  1. signupMessage属性添加到login控制器,然后添加到signup控制器inject login控制器中,并在注册后设置值signupMessage。然后,您可以在login模板中显示它(当用户离开login路线时,不要忘记清除此属性,deactivate路由事件应该有助于此。)
  2. 创建servicememoryStorage以存储可从不同位置访问的数据。在signup控制器中,您可以设置一条消息,然后从login控制器获取并显示(当然,从memoryStorage删除)。
  3. 使用闪存消息,无论现在哪条路线处于活动状态,都会在页面的某个位置显示几秒钟。 ember-cli-flash是此解决方案的一个很好的插件。

答案 1 :(得分:2)

根据您的要求,该服务是在不同应用状态之间共享数据的好地方。

  

Ember.Service是一个Ember对象,它在应用程序的持续时间内存在,并且可以在应用程序的不同部分中使用。

服务对需要共享状态或持久连接的功能非常有用。服务的示例使用可能包括:

  • 用户/会话身份验证。
  • 地理位置。
  • 的WebSockets。
  • 服务器发送的事件或通知。
  • 服务器支持的API调用可能不适合Ember数据。
  • 第三方API。
  • 记录日志。

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