如何在 ember 中通过 route.js 警报
How to pass alert trough route.js in ember
我做了一个确认邮件地址的功能。
当用户确认邮件时,我想显示烤面包机警报。
然而,我被困在 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 传递参数,但它似乎有点不合适..
您必须等待您的 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 success 并将其传递到组件中以显示您的 toast。好的副作用:你可以使用你的 confirmation
-route 作为加载屏幕。
好的,所以我找到了一个为我工作的包裹 https://github.com/poteto/ember-cli-flash
我只需要将下面的行添加到我的 confirmation.js
flashMessages: Ember.inject.service(),
Ember.get(this, 'flashMessages').success('Congratulations ! You\'ve just confirm your email address !');
并在组件中调用它
我做了一个确认邮件地址的功能。 当用户确认邮件时,我想显示烤面包机警报。 然而,我被困在 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 传递参数,但它似乎有点不合适..
您必须等待您的 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 success 并将其传递到组件中以显示您的 toast。好的副作用:你可以使用你的 confirmation
-route 作为加载屏幕。
好的,所以我找到了一个为我工作的包裹 https://github.com/poteto/ember-cli-flash 我只需要将下面的行添加到我的 confirmation.js
flashMessages: Ember.inject.service(),
Ember.get(this, 'flashMessages').success('Congratulations ! You\'ve just confirm your email address !');
并在组件中调用它