如何在ember中传递alert.js的警报

时间:2017-06-27 11:18:24

标签: javascript ember.js routes

我已经发布了一项功能,以确认邮件地址。 当用户确认邮件时,我想显示烤面包机警报。 Howwver,我被困在route / 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 {};
  }
});

我一直在考虑通过过渡来传递参数但是它看起来有点不合适..

2 个答案:

答案 0 :(得分:0)

你必须等待你的ajax呼叫得到解决。然后,您可以transitionTo app - 路由,并提供包含成功或错误标记的查询参数。这样的事情应该有效:

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 }});
}

app - 路线中,您可以使用queryParam成功并将其传递到组件中以显示您的祝酒词。不错的副作用:您可以使用confirmation - 路线作为加载屏幕。

答案 1 :(得分:0)

好的,所以我找到了一个为我做工作的包use that custom token to sign in 我只需将下面的行添加到我的confirmation.js

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

并在组件中调用它