HTML provides a standard maxlength attribute since version 4.01. Angular provides a ng-maxlength directive.
The difference is that the standard approach doesn't allow entering more than max, while Angular's approach just generates a validation error.
Why did they decide to include such a directive? It's not because of dynamic data binding of maxlength since the behaviour is inconsistent. It's not because of compatibility since it's available even in HTML 4.01. My only guess is that it's there to provide an alternative validation paradigm, but it sounds like over-engineering.