Как определить одновременные состояния в Ember.js? - PullRequest
2 голосов
/ 06 февраля 2012

Я хочу определить параллельные состояния в Ember.js, но отсутствие документации затрудняет выяснение как.

Вы можете определить взаимоисключающие состояния (система находится в foo или bar), например, так:

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 состоянии.

Ответы [ 3 ]

2 голосов
/ 07 февраля 2012

Посмотрите на этот запрос Pull. Это также связано с пакетом маршрутизации. https://github.com/emberjs-addons/sproutcore-statechart/pull/16#issuecomment-3747310

DominikGuzei также создал пример приложения, показывающего, как оно используется. Я нашел полезным понять текущую (всегда цепляющуюся) связь между emberjs и аддонами. https://github.com/DominikGuzei/ember-routing-statechart-example

2 голосов
/ 07 февраля 2012

Для одновременных состояний необходимо использовать дополнение диаграммы состояний . Параллелизм еще не реализован в enber-состояниях ...

редактировать

Параллельные состояния === ортогональные области (в мире проектирования конечных автоматов uml)

Извините, что не разъяснил это.

1 голос
/ 05 июня 2012

Вы можете использовать: Stativus и получить полную функциональность диаграммы состояний в emberjs прямо сейчас. Это полное переписывание старых диаграмм состояний SC без каких-либо ошибок SC. (gzipped <3k) </p>

Его более полнофункциональный и предназначен для работы с любой структурой.

...