我使用http://emberjs.com/guides/outlets/#toc_the-router中的示例在我的应用程序中设置了一些基本路由
在根目录中,我有一些从视图操作触发的事件,例如:
gotoStepOne: Ember.Route.transitionTo('stepOne'),
gotoStepTwo: Ember.Route.transitionTo('stepTwo'),
gotoStepThree: Ember.Route.transitionTo('stepThree'),
gotoStepFour: Ember.Route.transitionTo('stepFour'),
gotoStepFive: Ember.Route.transitionTo('stepFive'),
完整示例路由器代码位于http://jsfiddle.net/hellosmithy/WdjXT/
目前这一切都很好。问题是我想在这些事件中添加其他代码。例如:
gotoStepOne: function() {
if (someCondition) {
Ember.Route.transitionTo('stepOne');
}
someOtherFunction();
}
但是,这样做会破坏路由而不会引发任何错误。它只是不再过渡。
具体来说,我只希望在满足某个状态时发生转换——用户在每个阶段都选择或输入了某些内容,然后才能继续。是否有解决方法,或者我应该在其他地方抽象这个功能?