Ember.js 在多个文件之间拆分余烬状态图时发生转换错误

Ember.js 在多个文件之间拆分余烬状态图时发生转换错误,ember.js,statechart,Ember.js,Statechart,我正在尝试找出如何最好地将我的Ember.js状态图拆分为多个文件 使用SproutCore,我们需要使用SC.State.plugin(“statename”)将我们在另一个文件中定义的状态与主状态图相关联 我在Ember中没有看到这样的功能,所以我只是在statemanager的states散列中添加了一个新状态。(另见我的报告) App.statemanager=Ember.statemanager.create({ stateOne:Ember.State.create(…) }) //

我正在尝试找出如何最好地将我的Ember.js状态图拆分为多个文件

使用SproutCore,我们需要使用SC.State.plugin(“statename”)将我们在另一个文件中定义的状态与主状态图相关联

我在Ember中没有看到这样的功能,所以我只是在statemanager的states散列中添加了一个新状态。(另见我的报告)

App.statemanager=Ember.statemanager.create({
stateOne:Ember.State.create(…)
})
//新文件:
App.statemanager.states.stateTwo=Ember.State.create(..)
起初,这似乎是可行的——我能够过渡到我定义的新状态。但是,我发现我无法使用以下操作转换出此状态:

App.statemanager.states.stateTwo=Ember.State.create({
doSomething:(经理){
经理。过渡到(“stateOne”);
}
)}
App.statemanager.send(“doSomething”);//尝试转换时抛出错误
我在本地得到的错误是

Uncaught Error: assertion failed: You need to provide an object and key to `get`. 
  Ember.StateManager.Ember.State.extend.findStatesByRoute
我在工作中遇到的错误是


有人知道为什么会发生这种情况,以及分解状态图的正确方法是什么吗?

不要试图编辑或添加到已创建的状态管理器中,您应该构建各个状态,然后在构建状态图时将它们合并

例如:


此外,我使用extend构建“类”,然后在末尾使用create实例化。我认为养成这样做的习惯是个好主意,即使你把你的状态图当作一个单身汉。它使您的代码更易于以后测试。

谢谢,这似乎确实有效。两个问题:如果我使用extend创建statechart类,为什么您认为这会使代码更容易测试?为什么每个状态都被创建为自己的带有extend的类?根据定义,我假设各个州都是独生子女。
Uncaught TypeError: Cannot read property 'length' of undefined
  Ember.StateManager.Ember.State.extend.contextFreeTransition
  Ember.StateManager.Ember.State.extend.transitionTo
App.Statemanager = Ember.StateManager.extend({
    initialState: 'stateOne',

    stateOne: App.StateOne,
    stateTwo: App.StateTwo,
    stateThree: App.StateThree,
    stateFour: App.StateFour
});