J'ai donc cette directive qui permettra l'utilisation déclarative masquer ou afficher des éléments:Replicating ng, si une directive
<div cdt-visible-to="Admin,Moderator">...</div>
Ainsi, notre HTML devient aussi déclarative que possible. Et voici ce que notre directive ressemble à:
eDiscovery.directive('cdtVisibleTo', ['AuthService', function (AuthService) {
return {
restrict: 'AE',
link: function ($scope, elem, attrs) {
let cdtArray = String(attrs['cdtVisibleTo'] || '')
.split(/[ ,]+/).map(i => String(i).trim()).filter(i => i);
let ln = cdtArray.length;
for (let i = 0; i < ln; i++) {
let r = cdtArray[i];
if(AuthService.hasPersona(r)){
elem.removeAttr('hidden');
return;
}
}
elem.attr('hidden', 'hidden');
}
}
}]);
C'est donc comme un remplaçant pour ng-show
.
Ma question est: à quoi ressemblerait un remplaçant pour ng-if
?
Quelle est la meilleure façon de supprimer des éléments du DOM avec une directive Angular?
grâce, est-il nécessaire d'envelopper élém avec angular.element()? –
Il est nécessaire d'utiliser la méthode remove(). Si vous voulez utiliser JS natif, vous pouvez utiliser elem.parentNode.removeChild (elem); – Sergio10
merci :) Je pense que je vais utiliser angular.elem() alors, je suppose que juste utilise jQuery dans les coulisses. –