2012-02-06 10 views
2

Ember.jsで並行状態を定義したいのですが、ドキュメントが不足しているため、どのように状態を把握することが困難です。Ember.jsで並行状態を定義する方法は?

あなたはそうのように(システムのどちらかであるfooまたはbarで)互いに排他的な状態を定義することができます

App.stateManager = Ember.StateManager.create({ 
    foo: Ember.State.create({ 
     //... 
    }), 
    bar: Ember.State.create({ 
     //... 
    }) 
}); 

EDIT:ud3323

への対応は、次の並行状態ではないですか?

App.stateManager = Ember.StateManager.create({ 
    foo_baz: Ember.State.create({ 
     foo: Ember.State.create({ 
      // ... 
     }), 
     baz: Ember.State.create({ 
      // ... 
     }) 
    }), 
    bar: Ember.State.create({ 
     //... 
    }) 
}); 

しかし、どのようにシステムがfoo状態にあるとき、たとえば、それはbaz状態でもある、ということなの並行状態を定義します。

+0

これらは、私が意味するところでは並行していません。並行状態===直交領域...これは、同時に2つ以上の状態でステートマシンを持つ必要があるものです。簡単なステートチャートアドオンを使用すると、サブ状態が直交領域のように動作するようにするために、 'substatesAreConcurrent:YES'を定義するだけです。 –

+0

私はステートチャートを使いました。 –

+0

Ember.StateManagerはもはやコアの一部ではありません。 –

答えて

2

並行状態の場合は、statechart add-onを使用する必要があります。並行処理がまだのようenber-状態に実装されていません...

編集

並行状態(UMLのステートマシン設計の世界では)===直交地域

作っていないため申し訳ありません

それは明らかです。

+0

答えをありがとう。編集した質問に示されているようにそれができるのであれば、私は不思議に思っていました。 –

+0

これはまだサポートされていますか?もしそうでなければ、同時状態がサポートされているときにあなたの答えを更新すればいいでしょう。 –

+1

いいえ、それはすぐにいつまでになるか分からない。 –

2

このプルリクエストを見てください。また、ルーティングパッケージも結び付けています。 https://github.com/emberjs-addons/sproutcore-statechart/pull/16#issuecomment-3747310

DominikGuzeiは、使用方法を示すサンプルアプリケーションも作成しました。私はemberjsとアドオンの現在の(常に恋をしている)関係を理解することが有用であることを発見しました。 https://github.com/DominikGuzei/ember-routing-statechart-example

1

Stativusを使用して、すぐにemberjsで完全なステートチャート機能を使用できます。それは、SCクラフトのない古いSCステートチャートの完全な書き換えです。 (gzipped < 3k)

フル装備であり、あらゆるフレームワークで動作するように設計されています。

関連する問題