angular度 – 原始/脏和感动/未触动之间的差异
关于表格的有angular度的官方文档告诉我们关于表单和字段有很多风格和指示。 对于每一个CSS类:
ng-valid ng-invalid ng-pristine ng-dirty ng-touched ng-untouched
pristine/dirty
, touched/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 ,显示行为的差异。