通过AngularJS中的资源实现非标准化数据

时间:2014-07-24 17:09:23

标签: angularjs relational ngresource

我正在使用AngularJS开发WebApp。我有两个主要模型,旅程和地点。每个旅程都有一个起点和终点。

在服务器端,我只处理规范化数据,即旅程和位置存储在单独的数据库表中,每个旅程条目仅存储其目的地的ID号。

在客户端(在AngularJS中)我使用两个RESTful ngResources,一个用于旅程,一个用于位置。加载两者后,我用旅行的位置数据填充旅程,这样旅程不仅包含startLocation(id),还包含startLocationObject(位置数据),如下所示:

journey.startLocationObject = locations.byId(journey.startLocation);

ById是一个简单的查找函数,它返回具有给定id的位置。

现在,每次我在旅程中拨打$ save时,位置数据都会丢失,因为旅程会被服务器响应覆盖。因此,我必须再次使用位置数据重新填充旅程。

有没有更好的方法来解决这个问题?例如,阻止ngResource覆盖旅程对象?或者我在Angular中遗漏了关于关系数据的内容?

感谢您的帮助, 最好的,鲍里斯

1 个答案:

答案 0 :(得分:0)

它必须工作的方式是从服务器获取数据并使客户端保持无状态。

因此,不建议在REST应用程序上保留客户端的“旅程”数据。

旅程数据将来自服务器请求,或者在保存之前将旅程数据保存在另一个变量/集合上。