到目前为止,我的应用程序运行良好。它不是表单(没有使用标签的表单),但它是用户必须输入的一系列输入框。用户填充的每个输入框,我在该输入字段上添加橙色边框。我这样做是通过:
app.css:
#modifyTop .ng-dirty{
border: 2px orange;
}
的index.html: ...
<body id="modifyTop" name="modifyTop" ng-controller="ModifyPageCtrl">
<button ng-click=save()>Save</button>
...
在index.html中是一个保存按钮。一旦我点击保存按钮,边框字段就会消失。我这样做(我在Angular控制器中使用了jQuery,不确定这是否可以接受):
ModifyPageCtrl.js: ....
function save(){
....
$('#modifyTop .ng-dirty').removeClass('ng-dirty')
...
}
所以问题如下。在点击保存之后,如果说用户想要再次更改特定的输入字段,那么它不会显示橙色边框。只有以前未触及/未修改的字段才会显示边框。我必须重新加载页面,以使边框再次出现在那些特定的输入字段中。有人可以提供一些如何使我的工作成功的例子吗?我知道我已经提供了非常小的代码片段,因为我的工作不允许我粘贴公司代码,但如果人们无法提供所提供的信息,我会尝试提供更多详细信息。此外,还想提一下我的应用程序没有错误 - 这是我正在进行的增强修复。 谢谢
答案 0 :(得分:1)
你需要使用$ setPristine():
http://docs.angularjs.org/api/ng/type/form.FormController
来自文档:
将表单设置为其原始状态。
此方法将表单的$ pristine状态设置为true,即$ dirty状态 为false,删除ng-dirty类并添加ng-pristine类。 此外,它将$ submitted状态设置为false。
此方法也将传播到此中包含的所有控件 形式。