Ember.js状态管理器和路由器.可以同时使用两者



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

是的

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

路由器非常擅长处理整体应用程序状态,将模型/视图/控制器连接在一起,渲染到插座,并且始终可用,而无需全局依赖。但是,路由器实际上只是一个状态管理器,一次只能处于一种状态,有时其他对象中需要其他状态。

您可以在对象内部使用状态管理器。这方面的一个例子是具有以下状态的Car模型:驾驶、停车、碰撞、维修。状态管理器非常适合这里,因为有一个 finiate 状态,您可以控制可用的操作。例如,从driving->repairing开始是没有意义的,只允许crashed->repairing

最新更新