1

我有以下子状态定义:

App.ChildState = Ember.State.create({
  enter: function(manager) {
     //do stuff
  },
  start: Ember.ViewState.create({
    view: App.LoadingView,
    enter: function(manager) {
      this._super(manager);

      // manager cannot find the child otherstate
      manager.transitionTo('otherstate.index');
    }
  }),
  otherstate: App.OtherState

除非我像这样将调用包装在 Ember.run.next 中,否则经理找不到孩子 otherstate:

Ember.run.next(function(){
   manager.transitionTo('otherstate.index');
});

谁能让我知道为什么经理需要这种延迟才能找到这个子状态并过渡到它?

4

1 回答 1

2

让状态的 enter 方法触发转换不是正确的设计。您应该使用操作来进行任何有条件的状态转换。

于 2012-06-02T22:59:04.637 回答