$pristine/ $dirtyповідомляє, чи дійсно користувач щось змінив , а $touched/ $untouchedповідомляє, чи користувач просто був там / відвідував .
Це дійсно корисно для перевірки. Причиною цього $dirtyзавжди було уникати показу відповідей на підтвердження, поки користувач фактично не відвідав певний елемент контролю. Але, використовуючи лише $dirtyвластивість, користувач не отримає відгуку перевірки, якщо б він фактично не змінив значення. Отже, $invalidполе все ще не відображатиме запит користувача, якби користувач не змінив / не взаємодіяв зі значенням. Якщо користувач повністю ігнорував обов'язкове поле, все виглядало нормально.
За допомогою Angular 1.3 і ng-touchedтепер ви можете встановити певний стиль на елементі управління, як тільки користувач розмивається, незалежно від того, редагували вони значення чи ні.
Ось CodePen, який показує різницю в поведінці.