angular度 – 原始/脏和感动/未触动之间的差异

关于表格的有angular度的官方文档告诉我们关于表单和字段有很多风格和指示。 对于每一个CSS类:

ng-valid ng-invalid ng-pristine ng-dirty ng-touched ng-untouched 

pristine/dirtytouched/untouched的区别是什么?

angular使用的CSS类的API参考

  • @property {boolean} $ untouched如果控件还没有失去焦点,则为真。
  • @property {布尔} $ touch如果控件失去焦点,则为真。
  • @property {boolean} $ pristine如果用户尚未与控件交互,则为true。
  • @property {布尔} $脏如果用户已经与控件交互,则为真。

$pristine / $dirty告诉你用户是否实际改变了任何东西,而$touched / $untouched告诉你用户是否只是在那里/访问过

这对validation非常有用。 $dirty的原因总是为了避免显示validation响应,直到用户实际访问了某个控件。 但是,通过仅使用$dirty属性,用户将不会得到validation反馈,除非他们实际上改变了这个值。 所以,如果用户没有改变/与值交互, $invalid字段仍然不会向用户显示提示。 如果用户完全忽略了必填字段,则一切看起来都OK。

使用Angular 1.3和ng-touched ,只要用户模糊,就可以在控件上设置特定的样式,而不pipe他们是否实际编辑了值。

这是一个CodePen ,显示行为的差异。