私はこれまでに優れた'javascript-state-machine'ライブラリを使用しています。しかし、A)のような私のイベントでは、私はB)のようないくつかの移行コールバックを持っています。私は他の場所で働いている同様の 'onafterevent'コールバックを持っています。しかし'onafterEEpart'は発砲していないので、その理由を理解できません。javascript-state-machine onaftereventが呼び出されていません
私は'my-state-machine.EEpart'に電話をかけており、移行中にコールバックが発生するはずです。そして、ii)'onbeforeEEpart'が呼び出されています。だから私はこのonftereventがなぜ呼び出されていないのかについて迷っている。
これまでにみたことがある人は誰ですか?前もって感謝します。
A)
esm : StateMachine.create({ initial: 'Es', events: [ { name: 'EsE', from: 'Es', to: 'E' }, { name: 'EEpart', from: 'E', to: 'Epart' }, { name: 'EpartE', from: 'Epart', to: 'E' }, { name: 'EEs', from: 'E', to: 'Es' } ]
B)
onbeforeEEpart: (event, from, to, args) -> ... onafterEEpart: (event, from, to, args) -> ...
UPDATE [2012年3月23日。 2:49 am]
Epart-> Eから手動で移行しようとしましたが、A)でエラーが発生しました。 E-> Epartからの移行は決して完了していないようです。そして私には理由についての理論があります。
前回の移行後、B)のように次のトランジションをクリック機能にアタッチする必要がありました。これには、ステートマシンへの移行機能をリバインドするためのアンダースコアの使用が含まれます。私はこれがエラーを引き起こしていると思います。それがあれば、移行関数を回して解雇する正しい方法がありますか?
おかげ
A)
Uncaught event EpartE inappropriate because previous transition did not complete
B)
onafterPreviousEvent: (event, from, to, args) -> console.log('END Transition from Es->E') $(my-element) .bind('click', { fu: bar }, _.bind(args.data.esm.EEpart, args.data.esm)) # state machine is 'args.data.esm'