2012-02-06 35 views
2

我想在Ember.js中定義併發狀態,但缺少文檔使得很難弄清楚如何。如何在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狀態。

+0

沒有這些不是我的意思。併發狀態===正交區域......這就是你需要讓狀態機同時處於兩個或多個狀態。使用狀態圖附加功能很容易,只需在任何希望子狀態像正交區域執行的狀態下定義「substatesAreConcurrent:YES」。 – 2012-02-07 14:52:04

+0

好的,我去了狀態圖。 – 2012-02-07 16:45:38

+0

Ember.StateManager不再是核心的一部分。 – 2014-02-19 18:25:41

回答

2

對於併發狀態,您需要使用statechart add-on。併發沒有落實到enber態作爲尚未...

編輯

併發狀態===正交的區域(在UML狀態機設計的世界)

對不起,不使那清楚。

+0

感謝您的回答。我想知道,如果可以按我編輯的問題所示完成。 – 2012-02-07 07:19:38

+0

這是否支持?如果沒有,如果在支持併發狀態時更新答案將會很好。 – 2012-05-21 09:42:48

+1

不,它不是,我不知道它是否會很快。 – 2012-05-21 15:05:48

1

您可以使用:Stativus,並立即在emberjs中獲得完整的狀態圖功能。這是一個完整的舊SC狀態圖重寫,沒有任何SC cruft。 (gzipped < 3k)

它的功能更全面,可以與任何框架一起工作。

相關問題