【问题标题】:How to pass alert trough route.js in ember如何在 ember 中通过 route.js 传递警报
【发布时间】:2017-06-27 11:18:23
【问题描述】:

我创建了一个函数来确认邮件地址。 当用户确认是邮件时,我想显示烤面包机警报。 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 {};
  }
});

我一直在考虑通过 transitionTo 传递参数,但它似乎有点不合适..

【问题讨论】:

    标签: javascript ember.js routes


    【解决方案1】:

    您必须等待您的 ajax 调用得到解决。然后你可以transitionTo 你的app-route 并提供一个包含成功或错误标志的查询参数。像这样的东西应该可以工作:

    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-route 中,您可以使用 queryParam 成功并将其传递给组件以显示您的 toast。很好的副作用:您可以使用您的confirmation-route 作为加载屏幕。

    【讨论】:

    • 感谢您的反馈。看来,如果用户重新加载该页面,由于 transitionTo,他将再次落在 url 中的通知上
    【解决方案2】:

    好的,所以我找到了一个为我工作的包裹https://github.com/poteto/ember-cli-flash 我只需要将下面的行添加到我的确认.js

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

    并在组件中调用它

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-12-27
      • 2017-05-02
      • 1970-01-01
      • 2013-06-09
      • 1970-01-01
      • 2021-11-17
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多