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 に答える