AngularJs-持久性、存储、ajax请求、数据完整性
我正在评估AngularJS是否可以作为我中等简单的web应用程序的解决方案 其目的是尽可能减少AJAX服务器对数据的请求量 我的实际问题很简单,但这一要求的影响正在导致混乱 简而言之:“Angular可以通过用户输入修改从后端接收的JSON数据的一部分,并保持状态,直到我准备好返回该数据为止 情景: 从服务器获取JSON数据,其中包含每个根名称的根名称和相关地址详细信息。该列表与每个项目的“编辑地址”按钮一起呈现到屏幕上 用户单击“编辑地址”,将显示一个表单,其中包含根名称的地址数据 用户编辑数据,单击submit,客户机将JSON数据发送到服务器,为了参数起见,我们得到一个成功返回。地址详细信息被修改 这就是我问题的核心——以及缺乏理解——凸显出来的地方 我是否需要通过编辑单个列表项从服务器获取包含10个项目的完整列表以及单个修改的地址详细信息,或者我可以简单地更新单个项目客户端并在用户返回列表时保持状态,例如编辑另一个项目 瞧,我们取得了成功,但除了“成功”之外,实际上没有返回任何数据——我们的客户机已经存储了更改 这就是数据完整性问题的症结所在 **或** 获取没有关联地址数据的根项目列表。 用户单击根项目的“编辑地址”按钮。 我们从服务器获取根名称的地址数据并显示表单,用户编辑数据、提交、异步发送数据,获得成功。 用户返回列表,并发出另一个服务器请求以再次从服务器获取列表 这很难解释,但底线是关于持久性和数据完整性 最佳做法是在每个用户编辑数据后向服务器发出请求,还是可以将修改后的数据存储在客户端(具有持久性)AngularJs-持久性、存储、ajax请求、数据完整性,ajax,angularjs,persistence,Ajax,Angularjs,Persistence,我正在评估AngularJS是否可以作为我中等简单的web应用程序的解决方案 其目的是尽可能减少AJAX服务器对数据的请求量 我的实际问题很简单,但这一要求的影响正在导致混乱 简而言之:“Angular可以通过用户输入修改从后端接收的JSON数据的一部分,并保持状态,直到我准备好返回该数据为止 情景: 从服务器获取JSON数据,其中包含每个根名称的根名称和相关地址详细信息。该列表与每个项目的“编辑地址”按钮一起呈现到屏幕上 用户单击“编辑地址”,将显示一个表单,其中包含根名称的地址数据 用户编辑
显然,验证将在服务器端和客户端进行。您所问的更多的是一个服务器端问题,即如何设计一个好的RESTful API,允许在每次不发送/加载整个列表的情况下对单个实体进行更改。因此,您的问题的答案是,这完全取决于您……angular是否执行gr为您将UI元素绑定到控制器中的javascript对象,但当需要将数据保存到服务器时,您可以按照自己的意愿执行 在理想世界(IMO)中,您的服务器端API将支持以下内容:
- 获取地址列表(angular将其存储在$scope.addresses中)
- 获取单个地址
- PUT/PATCH更新地址(当用户对单个地址进行更改并确认时),并且不返回任何内容
- POST可创建新地址,并返回带有服务器提供标识符(如“id”)的已创建地址,您可以在angular中使用该标识符来确定地址是否已在服务器端持久化。POST后,使用从服务器获得的内容重写angular scope对象,以保存id字段
- 删除以删除它们(不返回任何内容)
创建持久化到服务器的UI的最佳方法是一个复杂的主题,有很多最佳实践。Angular将支持您想要的任何功能,但您需要在服务器上进行协调。哇,4分钟后我得到了-2。能给我一些启发吗?;)我没有投反对票,但也许一些源代码可以帮助澄清您的问题,即使它是伪代码。我试图公平地理解这个问题,我想没有人有时间阅读和理解这个问题。还没有代码。这是一个概念,问题是如何最好地使用AngularJS获取/发送数据并保持持久性。非常感谢Ken,这是一个深思熟虑且非常有用的回答。我有一种感觉,试图在整个列表客户端保持持久性将是一个疯狂的想法。现在正在研究RESTfulJavaAPI——谢谢。实际上,您正在维护列表客户端,作为范围内的一个数组。。。但是,当用户更改项目时,您应该使用单独的REST调用将项目保存到服务器。每个项上的ng form指令,并检查$dirty状态