Question

J'ai ce code, écrit avec 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);   
            }
        }
    }])
;

La portée a un title propriété, mais elle n'est pas rendue.Pourquoi?

Si je change la configuration de la directive en scope:true, cela fonctionnera 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);   
            }
        }
    }])
;

Il s'agit d'un bug ou d'une fonctionnalité dans Angular 1.2 ?L'ancienne version fonctionne bien dans tous ces cas : http://jsfiddle.net/VmkQy/3/

Était-ce utile?

La solution

Le {{title}} à l'intérieur de votre <span /> est remplacé.Ajouter template: "{{title}}" à votre directive et ça marche:

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

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top