Índice

Definir prioridades

1. Propiedad priority

Cuando existen varias directivas vinculadas al mismo elemento HTML, la noción de prioridad permite definir en qué orden se ejecutarán sus sucesivas fases. La definición de la prioridad de una directiva se realiza mediante la propiedad priority definiéndole un valor entero.

module.directive("miDirectiva", function() {  
    return {  
       priority: 1  
    };  
});

Cuanto más elevada sea la prioridad de una directiva, antes se ejecutarán sus fases compile, controller y preLink y más tarde se ejecutará su fase postLink. Es decir, que si una directiva tiene una prioridad más elevada que otra, sus fases compile, controller y preLink se ejecutarán antes y su fase postLink después. Y a la inversa, si una directiva tiene una prioridad menor que otra, sus fases compile, controller y preLink se ejecutarán después y su fase postLink antes.

<ul>  
    <li ng-repeat="i in [1, 2, 3]">  
       <span low-directive hight-directive></span>  
   </li>  
</ul>

En el template anterior, en un ng-repeat, se asocian dos directivas al mismo elemento HTML. La prioridad de estas directivas va a determinar el orden de ejecución.

module.directive("lowDirective", function() {  
    return {  
         ...