0
所以我有这个指令将允许使用声明的方式隐藏或显示元素:复制NG-如果用指令
<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中删除元素的最佳方法是什么?
谢谢,是否有必要包装elem与angular.element()? –
需要使用remove()方法。如果你想使用本地JS,你可以使用elem.parentNode.removeChild(elem); – Sergio10
谢谢:)我想我会使用angular.elem()然后,我想只是在幕后使用jQuery。 –