【发布时间】:2014-04-06 20:23:15
【问题描述】:
我的应用基于来自服务器的通知,使用 SignalR 我正在获取实体并使用添加它们
manager.createEntity(entityType, entity, breeze.EntityState.Unchanged);
用户界面基于绑定到特定类型的所有实体的 Angular 网格,但是当我添加新实体时,网格没有被更新,我的假设是我绑定到缓存而不是其他收藏。删除实体时同样的问题
【问题讨论】:
-
我不知道您是如何绑定到实体列表的,但假设它是父实体的导航属性,它应该在更新该属性时更新,前提是您不使用直接在 UI 中排序(此时绑定可能不会更新),但如果不是这种情况,您是否尝试过创建实体并链接到方法
.entityAspect.acceptChanges()而不是在状态不变的情况下创建它? -
我正在对集合使用 ng-repeat 进行绑定,这就是整个概念。我没有使用导航属性。当我更新其中一个实体的属性时,一切都很好,只是在添加/删除实体时不行。我创建它时状态不变,因为我不希望经理去服务器创建新实体
-
收藏什么?您可能在某个时间运行了一个查询,结果就是您所绑定的。如果您希望向该集合添加另一个项目,您需要有某种方式来引用该集合,Breeze 很可能对此一无所知。
-
根据文档和代码 -->getEntities - 此方法可用于获取 EntityManager 中的所有实体
-
意味着你获得了对包含某种类型实体的真实集合的引用