2

ある状態のアクションを、入力時に直接呼び出そうとしています。(実際、私のアプリでは、自分の州の親の州でアクションを呼び出そうとしていますが、最終的な結果は同じです。)

私のアプリでは、StateOneからStateTwoに移行します。状態StateTwoに入ると、manager.send( "myStateTwoAction")を呼び出します。しかし、すぐにエラーが発生します

Uncaught Error: <Ember.StateManager:ember1424> 
  could not respond to event myStateTwoAction in state StateOne.

これは私のStateTwoenterメソッドにあることに注意してください。

これが私のjsFiddleです:http://jsfiddle.net/SamFent/YGX2Y/

新しい状態のenterメソッド内から状態のアクションを呼び出す方法があるかどうか誰かが知っていますか?

4

1 に答える 1

2

enterメソッドで状態アクションを呼び出すことはできません。https://github.com/emberjs/ember.js/blob/master/packages/ember-states/lib/state_manager.js#L861でわかるように、enterメソッドが呼び出された後にcurrentStateが設定されます。setupただし、状態に入った直後にwitchが呼び出されるメソッドを実装できます。

App.StateTwo = Ember.State.extend({
  enter: function(manager) {
    $("#states").append("<p>State two</p>");
  },
  setup: function(manager){
    manager.send("goToThree");
  },
  goToThree: function(manager) {
    $("#states").append("<p>=> going to three...</p>");
    manager.transitionTo("stateThree");
  }
}),

参照: http: //jsfiddle.net/YGX2Y/2/

これがあなたのために働くことを願っています。

于 2012-09-12T13:49:01.377 に答える