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。 –