使用 Durandal 为单页应用程序创建 BreezeJS EntityManager 实例的最佳实践是什么?
实体管理器是应该在所有页面之间共享一个实例,还是每个页面都应该有一个实例?
欢迎提供有关实现的任何细节。
最佳答案
这取决于你想要完成什么。如果您共享了 1 个 EntityManager (EM),那么所有数据都在一个地方共享。任何更改都在 View 和 View 模型之间共享。当您按下保存时,您将保存所有屏幕。通常在这种情况下,您要防止在用户保存或取消之前离开屏幕。
如果您希望能够打开不同的屏幕并独立保存彼此的数据,您可以创建多个 EM。然后您可以根据需要取消一个或保存另一个。
或者您可以为应用的某些区域设置 EM(可能更常见)。真的取决于你想做什么。如果您不需要将事务分开,那么 1 个 EM 就足够了。
关于breeze - BreezeJS 是否应该使用 Durandal 在单页应用程序中跨页面共享实体管理器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15694591/