2012-02-06 6 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

Нет, я не имею в виду, что это не совпадение. Параллельные состояния === ортогональные регионы ... что было бы необходимо, чтобы конечный автомат находился в двух или более состояниях одновременно. С помощью простого надстрочного образа состояния просто определите 'substatesAreConcurrent: YES' в любом состоянии, в котором вы хотите, чтобы его подстанции выполнялись как ортогональные области. –

+0

Хорошо, я пошел с государственным картой. –

+0

Ember.StateManager больше не является частью ядра. –

ответ

2

Для одновременных состояний вам необходимо использовать statechart add-on. Параллелизм не реализуется в enber государств, как до сих пор ...

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

Одновременные состояния === ортогональные области (в мире УЯМ государственной конструкции машины)

К сожалению, чтобы не делать это прозрачный.

+0

Спасибо за ответ. Мне было интересно, если это можно сделать, как показано в моем отредактированном вопросе. –

+0

Поддерживается ли это еще? Если нет, было бы хорошо, если бы вы обновили свой ответ, когда поддерживаются параллельные состояния. –

+1

Нет, это не так, и я не уверен, скоро ли это произойдет. –

2

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

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

1

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

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