Índice

Uso de scopes

Como las vistas, las directivas tienen acceso a un scope. La propiedad scope de una directiva permite definir qué tipo de scope estará accesible: scope en curso, un nuevo scope o bien un scope aislado.

1. Scope en curso

Por defecto, o cuando el valor de la propiedad scope valga false, la directiva tendrá acceso al scope del elemento HTML sobre el que está vinculada. Gracias a ello, la directiva podrá interactuar directamente con el scope en curso de la vista.

module.controller("MainController", function($scope) {  
    $scope.value = 0;  
});

<body ng-controller="MainController">  
   <p>Valor sin directiva: {{value}}</p>  
   <p>Valor en la directiva: <span scope-directiva></span></p>  
</body>

El controlador anterior declara una propiedad value igual a cero en el scope. La vista muestra esta propiedad en una etiqueta p y existe un span vinculado a la directiva scopeDirectiva.

module.directive("scopeDirectiva", function() {  
    return {  
        restrict: "A",  
        template: "{{value}}",  
        scope: false,  
        link: function (scope, elem, attrs, ctrl) {  
            scope.value = 10;  
        }  
    };   ...