我有一个多步骤流程,用户可以顺序完成或直接跳转到某个部分(如果两者之间的部分已完成).我认为这个逻辑应该在Route对象中.但是,从控制器内部,我如何访问路由实例.例如,能够在控制器中执行类似的操作是理想的:
App.Flow = Em.ObjectController.extend({
submit: function(){
// Validation and XHR requests
// ...
// Go to the next step
route.goToNextStep();
}
}
Run Code Online (Sandbox Code Playgroud)
Mik*_*tti 39
在控制器内,您可以通过访问路由器this.get('target').所以this.get('target').send('goToNextStep')应该工作.
像这样:
App.Flow = Em.ObjectController.extend({
submit: function(){
// ...
this.get('target').send('gotoNextStep');
}
}
App.FlowRoute = Ember.Route.extend({
events: {
gotoNextStep: function(){
// ...
this.transitionTo(routeName);
}
}
}
Run Code Online (Sandbox Code Playgroud)