Q:

Problema com diretiva simples de mensagens de validação

Tenho a seguinte diretiva:
//diretiva responsavel por facilitar a passagem de campos para a validação
App.directive("validateMsgFor", function(){
    return{
        templateUrl : "view/templates/validateMsgFor.html",
        restrict:  "E",
        scope: {
            field : "="
        }
    }
});

E o template que ela usa é o seguinte:
<div ng-if="field.$dirty" ng-messages="field.$error">
    <div ng-messages-include="view/messages.html"></div>
</div>

que por sua vez usa do seguinte html:
<div class="messages">
    <div ng-message="required">Campo Obrigatório</div>
    <div ng-message="minlength">Necessário mais caracteres</div>
    <div ng-message="maxlength">Necessário menos caracteres</div>
    <div ng-message="email">E-mail inválido</div>
    <div ng-message="compareTo">Deve corresponder com valor digitado anteriormente</div>
</div>

Tudo isso pra ser usado da seguinte maneira:
<label>Departamento</label> 
<select id="departamentos" ng-model="model.curso.departamento" name="departamento" ng-options="d.nome for d in departamentos track by d.id" ng-required="true">
    <option value="">Selecione um Departamento</option>
</select>
<validate-msg-for field="mainForm.departamento"></validate-msg-for>

Isso funciona da maneira como eu espero, que é mostrar a mensagem quando houver um erro de validação e quando o campo estiver com o status "dirty".
Porém, quando eu clico em outro link, ou seja, quando vou para outra página, a aba congela, começa a usar bastante o processador, indicando algum tipo de loop infinito ou algo assim, e ai a página quebra. Percebi que isso só acontece quando a mensagem esta aparecendo, e quando comento a tag , não acontece o problema.
Minha dúvida é saber o que estou fazendo de errado, não é desse jeito que eu devo usar?
E se alguém tem alguma sugestão?
As versões do angular, do angular-route e do messages são a 1.4.3.
Desde já agradecido.

A:

Bom, fiz a seguinte alteração:
<div ng-if="field.$dirty" ng-messages="field.$error" class="messages">
    <div ng-message="required">Campo Obrigatório</div>
    <div ng-message="minlength">Necessário mais caracteres</div>
    <div ng-message="maxlength">Necessário menos caracteres</div>
    <div ng-message="email">E-mail inválido</div>
    <div ng-message="compareTo">Deve corresponder com valor digitado anteriormente</div>
<!-- <div ng-messages-include="view/messages.html"></div> -->
</div>

E agora funciona sem quebrar a página.
Porém, ainda não sei o porque dava aquele erro.

