2

假设我在屏幕上编辑帖子(及其相关元数据)。现在,该帖子有许多类别、标签和可能的其他相关项目 (hasMany)。

保存整个帖子时,我必须保存帖子以及与之关联的每个实体。这就是我在 AngularJS 中的做法:

  1. 所有数据都存储在一个单独的模型中,以便可以普遍访问。每个相关实体都有多个元数据,指示它们是新的、脏的还是存在服务器端验证错误。

  2. 另一个名为“SaveCtrl”的控制器管理保存。它遍历帖子的所有实体,找出已更改的实体,然后仅将它们与帖子一起发送到单个保存端点。

  3. 我有一个解析来自服务器的响应的工厂。由于服务器端验证错误,可能无法保存元素。无论如何,一旦我们得到响应,这些实体中的每一个都必须使用新的状态和验证错误进行更新。这允许服务器端在没有任何错误的情况下更新实体,同时为少数确实有验证错误的实体返回错误。

现在,这种方法存在一些问题:

  1. 节省并不完全是 RESTful。在检索数据时,我相信我应该对每个资源进行多次 GET 调用(API 的 URL 设计)。但是,我不知道类似的保存方法。我应该一次保存一个集合还是一个实体?

  2. 每个实体的元数据(指定它是新的、脏的、已保存的还是未保存的)必须放入模型数据本身。由于 ng-repeat 创建了一个单独的范围,我理想情况下希望将此类状态信息保存在这些单独的范围中,并将 ng-repeat 元素包装在一个可以处理此问题的控制器中。

我的问题

我应该使用哪种策略来保存整个帖子及其所有相关实体?还是我目前的策略足够好?让我知道是否需要一些额外的细节。

4

0 回答 0