单击保存按钮后,Ng脏显示不显示

时间:2017-06-07 05:10:16

标签: angularjs

到目前为止,我的应用程序运行良好。它不是表单(没有使用标签的表单),但它是用户必须输入的一系列输入框。用户填充的每个输入框,我在该输入字段上添加橙色边框。我这样做是通过:

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')
...
}

所以问题如下。在点击保存之后,如果说用户想要再次更改特定的输入字段,那么它不会显示橙色边框。只有以前未触及/未修改的字段才会显示边框。我必须重新加载页面,以使边框再次出现在那些特定的输入字段中。有人可以提供一些如何使我的工作成功的例子吗?我知道我已经提供了非常小的代码片段,因为我的工作不允许我粘贴公司代码,但如果人们无法提供所提供的信息,我会尝试提供更多详细信息。此外,还想提一下我的应用程序没有错误 - 这是我正在进行的增强修复。 谢谢

1 个答案:

答案 0 :(得分:1)

你需要使用$ setPristine():

http://docs.angularjs.org/api/ng/type/form.FormController

来自文档:

  

将表单设置为其原始状态。

     

此方法将表单的$ pristine状态设置为true,即$ dirty状态   为false,删除ng-dirty类并添加ng-pristine类。   此外,它将$ submitted状态设置为false。

     

此方法也将传播到此中包含的所有控件   形式。