Javascript 如何在ember中通过route.js警报

Javascript 如何在ember中通过route.js警报,javascript,ember.js,routes,Javascript,Ember.js,Routes,为了确认邮件地址,我做了一个函数。 我想在用户确认为邮件时显示烤面包机警报。 然而,我被困在/users/confirmation.js路径中,我不知道如何从那里通过组件传递它 import ApplicationRoute from '../../routes/application'; import Ember from 'ember'; import ENV from "../../config/environment"; export default ApplicationRoute.

为了确认邮件地址,我做了一个函数。 我想在用户确认为邮件时显示烤面包机警报。 然而,我被困在/users/confirmation.js路径中,我不知道如何从那里通过组件传递它

import ApplicationRoute from '../../routes/application';
import Ember from 'ember';
import ENV from "../../config/environment";

export default ApplicationRoute.extend({
  beforeModel(params) {
    const confirmationToken = params.queryParams.confirmation_token;

    // Call backend with confirmation token
    Ember.$.ajax({
      url: ENV.API_HOST + '/users/confirmation?confirmation_token=' + confirmationToken,
      type: 'GET',
      headers: {
        'x-api-key': ENV.APP.api_key
      }
    this.transitionTo('app');

    return {};
  }
});

我一直在考虑通过转换来传递参数,但这似乎有点不合适。

您必须等待ajax调用得到解决。然后,您可以
转换到
您的
应用程序
-路由,并提供一个包含成功或错误标志的查询参数。像这样的方法应该会奏效:

model(params, transition) {
  const confirmationToken = transition.queryParams.confirmation_token;

  // Call backend with confirmation token
  return Ember.$.ajax({
    url: ENV.API_HOST + '/users/confirmation?confirmation_token=' + confirmationToken,
    type: 'GET',
    headers: {
      'x-api-key': ENV.APP.api_key
    }
  });
},

afterModel(response) {
  this.transitionTo('app', { queryParams: { success: response.success }});
}

在您的
应用程序中
-路由中,您可以使用queryParam success并将其传递到组件中以显示您的toast。很好的副作用:你可以使用你的
确认
-路线进行加载屏幕。

好的,我找到了一个为我工作的包 我只需要在我的confirmation.js中添加下面的行

 flashMessages: Ember.inject.service(),
Ember.get(this, 'flashMessages').success('Congratulations ! You\'ve just confirm your email address !');

并将其称为组件

谢谢您的反馈。看起来,如果用户重新登录页面,他将再次出现在url中的通知上,因为该通知已被传递到