Directiva de validación de formulario personalizado para comparar dos campos

Soy un novato angular, y estoy tropezando con algo sobre cómo funcionan las directivas de validación de formas angulares.

Sé que puedo fácilmente agregar directivas a campos individuales , pero estoy tratando de agregar una validación que compare dos campos de formulario (ambos son elementos de un modelo).

Aquí hay un esqueleto de formulario:

Min cannot exceed max

En resumen, quiero escribir una directiva y usarla para mostrar / ocultar este small.error Si min y max tienen valores, min > max . ¿Cómo puedo acceder a ambos campos dentro de una directiva? ¿Es una directiva la herramienta adecuada para este trabajo?

Muchas maneras de despellejar a un gato.

PLUNKER

 app.directive('lowerThan', [ function() { var link = function($scope, $element, $attrs, ctrl) { var validate = function(viewValue) { var comparisonModel = $attrs.lowerThan; if(!viewValue || !comparisonModel){ // It's valid because we have nothing to compare against ctrl.$setValidity('lowerThan', true); } // It's valid if model is lower than the model we're comparing against ctrl.$setValidity('lowerThan', parseInt(viewValue, 10) < parseInt(comparisonModel, 10) ); return viewValue; }; ctrl.$parsers.unshift(validate); ctrl.$formatters.push(validate); $attrs.$observe('lowerThan', function(comparisonModel){ // Whenever the comparison model changes we'll re-validate return validate(ctrl.$viewValue); }); }; return { require: 'ngModel', link: link }; } ]); 

Uso:

   Min cannot exceed max.