Pregunta

Tengo este código, escrito con Angular 1.2: http://jsfiddle.net/VmkQy/1/

<div ng-app="app">
    Title is: <span my-directive data-title="Test title">{{ title }}</span>
</div>

angular.module('app', [])
    .directive('myDirective', [function() {
        return {
            restrict: 'A',
            scope: {title:'@'},
            link: function($scope) {
                alert($scope.title);   
            }
        }
    }])
;

El alcance tiene un title propiedad, pero no se presta.¿Por qué?

Si cambio la configuración de la directiva a scope:true, funcionará bien: http://jsfiddle.net/VmkQy/2/

angular.module('app', [])
    .directive('myDirective', [function() {
        return {
            restrict: 'A',
            scope: true,
            link: function($scope, $element, attrs) {
                $scope.title = attrs.title;
                alert($scope.title);   
            }
        }
    }])
;

¿Esto es un error o característica en Angular 1.2?La versión anterior funciona bien en todos estos casos: http://jsfiddle.net/VmkQy/3/

¿Fue útil?

Solución

El {{title}} dentro de tu <span /> es reemplazado.Agregar template: "{{title}}" a su directiva y funciona:

http://jsfiddle.net/VmkQy/5/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top