我想在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
状态。
答案 0 :(得分:2)
对于并发状态,您需要使用statechart add-on。到目前为止,并发还没有实现到enber-states ......
修改强>
并发状态===正交区域(在uml状态机设计的世界中)
很抱歉没说清楚。
答案 1 :(得分:2)
看看这个Pull请求。它也与路由包相关联。 https://github.com/emberjs-addons/sproutcore-statechart/pull/16#issuecomment-3747310
DominikGuzei还创建了一个示例应用程序,展示了它的使用方法。我发现理解emberjs和插件之间的当前(总是chainging)关系很有帮助。 https://github.com/DominikGuzei/ember-routing-statechart-example
答案 2 :(得分:1)
您可以使用:Stativus并立即在emberjs中获取完整的状态图功能。它完全重写了旧的SC状态图,没有任何SC cruft。 (gzipped< 3k)
它功能更全面,适用于任何框架。