Breeze - 在模态策略中编辑行

Breeze - Édit row in modal strategy

在我最近的几个项目中,我一直在使用 breeze 和 angularJS,但有些事情我从来没有做对,至少没有一个好的策略。这是一个模式中的 editing/adding 行。

在以前的项目中,我的策略是将 breeze object 克隆到 json object 中,然后在其中编辑 object模态。这个策略不太好,因为我失去了 breeze 验证对象的能力。

所以在这个新项目中,我改变了那个策略,我 clone breeze object 变成另一个 breeze object 最后编辑,我将更改合并到原始 object。 最后一个策略的问题是,如果我创建一个新的 breeze object(已附),object 将添加到实体管理器中,最后我必须删除他并且是导航 objects。如果我创建一个新的 breeze object (已分离),我将失去自动验证和导航属性。所以我在最后一个策略中一无所获。

注意:我总是在所有策略中克隆 object,因为我使用的是 angularJS 并且我不希望用户看到 object 在同时列出他正在编辑模态中的 object。

所以,我的问题是使用 breeze 和 angularJS 实现此目的的最佳方法是什么? 我没有找到任何关于此的 breezeJS 推荐。

您应该为此使用 multiple entity managers。与其在同一个管理器中克隆一个对象,不如为模式对话框创建一个单独的 EntityManager。然后对话框中的所有更改都将发生在该 EntityManager 中,如果用户选择放弃更改,您可以放弃该 EntityManager,其余数据将完好无损。

有关示例,请参阅 Multiple EntityManagers documentation for how to do this, and see the TempHire 示例应用程序。 TempHire 使用 Knockout 而不是 Angular,但概念是相同的。