Javascript angularjs-将某些数据输入正确设置为$pristine或untouched

Javascript angularjs-将某些数据输入正确设置为$pristine或untouched,javascript,angularjs,forms,zurb-foundation,Javascript,Angularjs,Forms,Zurb Foundation,经过研究,我仍然陷入困境。我使用的最新版本的基金会的应用程序与角度“预嵌入”。 我有一个表单,用于添加和编辑数据——比如说,它是针对一项工作的,它跟踪员工在工作中的天数。加载视图时,表单完全为空,包含两个部分-职务详细信息和员工详细信息 首先,用户必须在作业部分输入并保存详细信息(以便为作业创建id,以便员工可以链接到该id),以便激活员工部分。这工作正常,通过将作业id设置为>0启用(-1为加载时的默认值) 到目前为止,这一切都很正常,但我的控制器中有一个函数,允许加载现有的作业记录。当用户模

经过研究,我仍然陷入困境。我使用的最新版本的基金会的应用程序与角度“预嵌入”。 我有一个表单,用于添加和编辑数据——比如说,它是针对一项工作的,它跟踪员工在工作中的天数。加载视图时,表单完全为空,包含两个部分-职务详细信息和员工详细信息

首先,用户必须在作业部分输入并保存详细信息(以便为作业创建id,以便员工可以链接到该id),以便激活员工部分。这工作正常,通过将作业id设置为>0启用(-1为加载时的默认值)

到目前为止,这一切都很正常,但我的控制器中有一个函数,允许加载现有的作业记录。当用户模糊三个字段中的一个字段时,控制器会检查数据对象中是否有与这些唯一字段匹配的作业,并在scopes“job”模型中的数据中加载(angular.copy)。加载时,所有表单输入都被设置并标记为脏

显然,我需要的行为是,如果系统加载了作业详细信息,那么表单不会被标记为dirty,以便让我知道作业详细信息是否在之后的任何时候被编辑过。对于已保存并给定id的新作业,也需要这样做

据我所知,setPristine()函数实际上重置了表单和模型,类似于
表单[0]。reset()
,但我可能错了。我也怀疑不被触碰可能是一条出路

我还应该提到,包含此视图的所有部分,包括employee部分中的AddEmployee输入

我知道我可以简单地手动删除ng dirty类,但是已经阅读了这篇文章,因此不会更新角度方式,也不会识别进一步的编辑

有没有一种方法可以在功能上从元素的所有子输入中删除ng dirty,而不是表单中的所有输入,并且不删除加载的数据


注意:默认情况下,所有输入都链接(通过
ng model
)到它们的相关模型,并且数据在控制器中加载到模型。

似乎我误解了其他帖子中的pristine,在进一步测试后,只有输入唯一数据的字段更改为dirty。我只需要在加载现有记录后调用setPristine,然后可能会遍历该部分中的所有元素来测试它们$setPristine没有像我前面读到的那样清除输入。

我已经查看了
$setUntouched()
,但注意到这将改变值是在聚焦后更改还是仅仅模糊