Pourquoi ce code ne fonctionne pas dans AngularJS 1.2 ?
-
20-12-2019 - |
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/
La solution
Le {{title}}
à l'intérieur de votre <span />
est remplacé.Ajouter template: "{{title}}"
à votre directive et ça marche:
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow