我正在创建一个web客户端,它使用带有角的设置web。有很多设置,它们都是可选的。如果我发送一个设置,它应该被保存。未发送的设置不应更改。
要求为所有设置设置一个保存更改按钮。
我不知道在角度上是否有什么方法来实现这一点。
我考虑不使用HTML,不收集数据,自己创建ajax请求,但这样我就会失去验证机制(这在角UI验证方面运行得很好)。
我考虑将表单拆分为小表单,只在ng-dirty
不为false的情况下将表单子化,但如果某些请求失败(这违背了需求),这可能会导致部分保存。
有什么想法吗?
发布于 2013-05-16 17:17:43
在角度文档中,有一个例子涵盖了ng拷贝来实现重置功能。
http://docs.angularjs.org/cookbook/advancedform
在提交期间,您可以将初始模型(主副本)与更改/提交的对象(更改的副本)进行比较,并且只提交更改的项(或只删除相同/未更改的项)。
使用http://blog.vjeux.com/2011/javascript/object-difference.html区分副本和母版,这需要额外的工作来处理数组。或转换为JSON并区分JSON https://github.com/benjamine/JsonDiffPatch
发布于 2013-10-11 04:26:18
您可以在提交之前检查表单或任何命名字段是否已被修改。如果表单有一个名称,而您的输入有如下名称:
<form name="myForm">
<input name="input1">
</form>
在控制器中,您可以访问对象$scope.myForm
和$scope.myForm.input1
,如果用户修改了原始值,这些对象将具有一个$dirty
属性。
https://stackoverflow.com/questions/16588263
复制相似问题