Следует ли BreezeJS совместно использовать диспетчер сущностей на нескольких страницах в одностраничном приложении, использующем Durandal?


Как лучше всего создавать экземпляры Breezejs EntityManager для одностраничного приложения с использованием Durandal?

Должен ли существовать один экземпляр менеджера сущностей, общий для всех страниц, или должен существовать один экземпляр для каждой страницы?

Любая конкретика по реализации приветствуется.

1 2

1 ответ:

Это зависит от того, чего вы хотите достичь. Если у вас есть 1 EntityManager (EM) shared, то все данные будут совместно использоваться в одном месте. Любые изменения являются общими для всех видов и моделей просмотра. При нажатии кнопки Сохранить сохраняются все экраны. Обычно в этом случае вы не хотите покидать экран, пока пользователь не сохранит или не отменит его.

Если вы хотите иметь возможность открывать разные экраны и сохранять данные независимо друг от друга, вы можете создать несколько EMs. Затем вы можете отменить одно или сохранить другое, однако ты хочешь.

Или у вас может быть EM для областей вашего приложения (вероятно, более распространенных). Все зависит от того, что вы хотите сделать. Если у вас нет требования хранить транзакции отдельно, то 1 EM будет достаточно.