2

我想在 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状态。

4

3 回答 3

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 回答
2

对于并发状态,您需要使用状态图插件。到目前为止,并发还没有在 enber-states 中实现......

编辑

并发状态 === 正交区域(在 uml 状态机设计的世界中)

很抱歉没有说清楚。

于 2012-02-06T21:40:37.943 回答
1

您现在可以使用:Stativus并在 emberjs 中获得完整的状态图功能。它完全重写了旧的 SC 状态图,没有任何 SC 杂物。(压缩 <3k)

它的功能更全面,旨在与任何框架一起使用。

于 2012-06-05T14:10:50.777 回答