所以我有这个指令,它允许以声明方式隐藏或显示元素:
<div cdt-visible-to="Admin,Moderator">...</div>
所以我们的 HTML 变得尽可能的具有声明性。这就是我们的指令的样子:
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');
}
}
}]);
所以这就像ng-show
.
我的问题是——替身ng-if
会是什么样子?
使用 Angular 指令从 DOM 中完全删除元素的最佳方法是什么?