2

Ember.jsで同時状態を定義したいのですが、ドキュメントが不足しているため、その方法を理解するのが困難です。

次のように、相互に排他的な状態(システムはまたはのいずれfoobar)を定義できます。

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

編集: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

4

3 に答える 3

2

同時状態の場合は、 statechartアドオンを使用する必要があります。現時点では、並行性はenber-statesに実装されていません...

編集

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

それを明確にしないでごめんなさい。

于 2012-02-06T21:40:37.943 に答える
2

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

DominikGuzeiは、その使用方法を示すサンプルアプリケーションも作成しました。emberjsとアドオンの間の現在の(常に連鎖している)関係を理解することは役に立ちました。 https://github.com/DominikGuzei/ember-routing-statechart-example

于 2012-02-06T22:19:00.043 に答える
1

Stativusを使用して、現在emberjsで完全なステートチャート機能を取得できます。これは、SCの断片を一切使用せずに、古いSCステートチャートを完全に書き直したものです。(gzipで圧縮された<3k)

そのより完全な機能とあらゆるフレームワークで動作するように設計されています。

于 2012-06-05T14:10:50.777 に答える