Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在SPA应用程序中管理前端数据?_Javascript_Angularjs_Frontend - Fatal编程技术网

Javascript 在SPA应用程序中管理前端数据?

Javascript 在SPA应用程序中管理前端数据?,javascript,angularjs,frontend,Javascript,Angularjs,Frontend,好的,我会尽量说得更具体一些: 比如说我拿了一份模型清单,比如一辆汽车: Car.get(); 稍后,我需要ge一辆特定的汽车,即零件或该列表,但我还需要汽车具有的一些关系,因此我需要提出新的要求,如: Car.get({ id: 1, with: 'car_materials.material' }); 在这里,我获取汽车及其材料,我们假设关系表也包含我需要的一些枢轴数据 现在,当我编辑我获取的id为1的“新”汽车时,我希望具有相应id的汽车,即“旧”汽车,在我编辑“新”汽车后在其所在的列

好的,我会尽量说得更具体一些:

比如说我拿了一份模型清单,比如一辆汽车:

Car.get();
稍后,我需要ge一辆特定的汽车,即零件或该列表,但我还需要汽车具有的一些关系,因此我需要提出新的要求,如:

Car.get({ id: 1, with: 'car_materials.material' });
在这里,我获取汽车及其材料,我们假设关系表也包含我需要的一些枢轴数据

现在,当我编辑我获取的id为1的“新”汽车时,我希望具有相应id的汽车,即“旧”汽车,在我编辑“新”汽车后在其所在的列表中更新,因为它们实际上是同一型号,但在不同的场合获取

我该怎么办

编辑:我有一个解决方案(解释如下),但当我试图删除模型时,它开始变得丑陋,因为我被删除的模型留在应用程序的不同部分,直到对该项目或列表提出新的get请求

如果你愿意的话,你可以忽略下面的文字,或者阅读更多关于我问题的信息


我很抱歉,如果标题在读了这篇文章后会出现误导,我想不出更好的办法了

我正在做一个水疗项目,我会尽可能详细地描述我的问题

当我们从后端获取数据时,我们将数据存储在前端项目的数据对象中。为什么?因为我们希望前端的数据能够同步,所以一个模型的一个实例,比如说一个用户,可能会同时出现在页面的不同位置和不同的上下文中。例如,它可能被列为连接到某个帐户的用户,而该用户可能被列为某个项目的参与者。当用户编辑其配置文件时,我们希望模型的所有这些表示一起更新,而无需重新加载页面

因此,当我们从后端获取数据时,我们在前端有定义的模型及其关系,当我们获取数据对象时,数据对象将填充所有模型及其关系

这是为了说明我们的数据(圆圈是我们的模型):

现在我知道我所说的“数据对象”不过是一个嵌套的未索引数组,其中填充的对象与引用内存中相同空间的其他对象没有什么不同

当我们试图删除诸如用户和项目之间的关系(这在我们的数据对象中也表示为一个模型)之类的内容时,实际的问题就会出现,我们如何删除这些内容并确保删除对同一对象的所有引用

我们不能只删除“数据对象”中的对象,因为这样,该对象的所有其他副本都将保持完整,这将导致问题,因为在我们再次获取数据并重新填充页面之前,这些对象可能在页面上仍然可见

我们可以只对对象上的每个对象执行操作,并删除所有属性,使所有对象都为空,但这只会使页面上的行变为空

我们如何解决这个问题?我们是不是走错了路?我们应该如何在页面上保持数据“最新”


谢谢

我会试着编一个提琴。我把问题改得更直接,而不是更宽泛。希望更好。