Ember.js statemanager和路由器。好的,两者都用?

时间:2012-10-06 05:35:52

标签: ember.js

管理不同类型的州的最佳做法是什么?例如,我有一个应用程序,其中一些状态有意义绑定到路由所以我正在使用路由器,但其他状态不能反映在URL中,这样做是没有意义的。那么是否可以通过完整路由器管理某些状态,并由状态管理器实例管理其他状态?拥有多个州经理或者这是一个坏主意是否可以接受?

1 个答案:

答案 0 :(得分:3)

是的 - 在非路由器的区域使用Ember.StateManager是完全可以接受的。

路由器非常擅长处理整体应用程序状态,将模型/视图/控制器连接在一起,渲染到出口,并始终在没有全局依赖性的情况下可用。但是,路由器实际上只是一个状态管理器,它只能同时处于一个状态,有时在其他对象中需要其他状态。

您可以在对象内使用StateManager。这方面的一个例子是Car模型,它具有以下状态:驾驶,停放,坠毁,修复。州经理非常适合这里,因为有一个finiate州,你可以控制可用的行动。例如,从driving->repairing开始是没有意义的,只允许crashed->repairing