所以我有这个指令允许使用声明性隐藏或显示元素:
<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中删除元素的最佳方法是什么?
答案 0 :(得分:1)
您可以使用Angular元素的.remove()方法从DOM中删除元素: 首先从你的元素中获取angular元素,然后使用remove函数
要执行此操作:
cca
如果传递给指令的Personas没有被授权,我想你想从DOM中删除它,所以也许你可以使用下面的代码:
angular.element(elem).remove();
更多信息&amp; angular.element的方法: https://docs.angularjs.org/api/ng/function/angular.element