Ember 动作在组件内部完成后如何重定向
How to redirect after Ember action completes inside component
所以我是 Ember 的新手(使用 ember-cli 3.0.4),并且试图了解如何对我做什么是正常的事情。我在一个组件内有一个表单,用户可以在其中更新信息,然后单击“保存”。我已经构建了一个动作,组件在单击“保存”按钮时调用该动作,并且该动作在模型对象上调用 save() 。到目前为止,还不错。
我的问题是我想在 save() 承诺完成时重定向到另一个页面。我不知道该怎么做。 emberjs 操作指南一次也没有提到重定向,似乎只有路由模块提到了重定向。
显然,有一种 "embery" 做事的方式我还不知道,但到目前为止我无法弄清楚那是什么。保存后的简单重定向如何在 Ember 中做得最好?
组件代码:
export default Component.extend({
actions: {
saveCountry() {
var self = this;
if (this.country.get('hasDirtyAttributes')) {
this.country.save().then(
//???
);
}
}
}
路线代码:
export default Route.extend({
model(params) {
return this.get('store').findRecord('country', params.country_id);
}
});
谢谢!
要从组件转换或重定向,您可以注入 RouterService 并使用 transitionTo
或 replaceWith
。这是一个例子:
import Component from '@ember/component'
import {inject} from '@ember/service'
export default Component.extend({
router: inject(),
actions: {
saveCountry() {
// do stuff, validate etc.
this.get('router').transitionTo('my-route')
}
}
})
另见 https://guides.emberjs.com/v3.1.0/routing/redirection/。希望对你有帮助。
所以我是 Ember 的新手(使用 ember-cli 3.0.4),并且试图了解如何对我做什么是正常的事情。我在一个组件内有一个表单,用户可以在其中更新信息,然后单击“保存”。我已经构建了一个动作,组件在单击“保存”按钮时调用该动作,并且该动作在模型对象上调用 save() 。到目前为止,还不错。
我的问题是我想在 save() 承诺完成时重定向到另一个页面。我不知道该怎么做。 emberjs 操作指南一次也没有提到重定向,似乎只有路由模块提到了重定向。
显然,有一种 "embery" 做事的方式我还不知道,但到目前为止我无法弄清楚那是什么。保存后的简单重定向如何在 Ember 中做得最好?
组件代码:
export default Component.extend({
actions: {
saveCountry() {
var self = this;
if (this.country.get('hasDirtyAttributes')) {
this.country.save().then(
//???
);
}
}
}
路线代码:
export default Route.extend({
model(params) {
return this.get('store').findRecord('country', params.country_id);
}
});
谢谢!
要从组件转换或重定向,您可以注入 RouterService 并使用 transitionTo
或 replaceWith
。这是一个例子:
import Component from '@ember/component'
import {inject} from '@ember/service'
export default Component.extend({
router: inject(),
actions: {
saveCountry() {
// do stuff, validate etc.
this.get('router').transitionTo('my-route')
}
}
})
另见 https://guides.emberjs.com/v3.1.0/routing/redirection/。希望对你有帮助。