J'ai une directive "avatar", qui prend un objet 'utilisateur' et affiche une image de l'utilisateur.AngularJS 1.6: Directive à l'intérieur du modèle de directive ne fonctionne que la première fois
Cela fonctionne très bien.
Maintenant j'ai une autre directive 'user', qui affiche le nom de l'objet 'user' donné et inclut avec son template la directive.
Cela fonctionne .. LA PREMIÈRE FOIS.
Lorsque je mets à jour l'objet 'user', seul le nom change, l'image (avatar) ne change pas.
Mon problème: Comment puis-je le faire fonctionner?
directive Avatar:
(fonction de lien: si l'objet utilisateur a une propriété 'ext', il calcule un chemin d'image ('src'), sinon il affiche un template.jpeg standard)
directive('avatarSmall', function() {
return {
restrict: "E",
replace: true,
templateUrl: "scripts/directives/avatar/small.html",
link: function(scope, element, attrs) {
var r = "images/avatars/";
var ext = scope.user.ext;
r += ext != undefined && ext.length >= 3 ? scope.user.ID + "." + ext : "template.jpeg";
scope.src = r;
},
scope: {
user: '='
}
}
})
modèle avatar:
<div class="circle-wrapper-small">
<img class="circle-img-small"
ng-src="{{src}}">
</div>
directive utilisateur:
directive('user', function($compile) {
return {
restrict: "E",
replace: true,
templateUrl: "scripts/directives/user/template.html",
scope: {
user: '='
}
}
})
modèle utilisateur:
<div>
<div class="media-left">
<avatar-small user="user" />
</div>
<div class="media-body">
<h4 class="media-heading">{{user.name}} {{user.surname}}</h4>
</h5>
</div>
</div>
Merci pour la bonne réponse, j'ai appris quelque chose de nouveau aujourd'hui! Aussi (pour les autres utilisateurs avec le même problème), j'ai remplacé '' par un ng-include = 'source-of-avatar-template' mais le résultat était le même, cela ne fonctionnait que la première fois. –
MehmetGunacti
Je suis content que vous l'ayez trouvé utile. À votre santé! –