我試圖根據用戶的權限創建一個指令來控制DOM中的一些元素。在網上尋找,我發現了元素的.remove()
函數。它工作很好。AngularJS - 自我刪除/插入
但是,如果權限發生變化,我需要再次顯示DOM元素。撥打.remove()
後我怎麼辦?
這裏是我的代碼:
ddo.link = function(scope, el, attrs){
// Validate the permission
if(currentUserService.isAllowed(scope.validatePermission) !== true) {
el.remove();
}
// Listener for changes
$rootScope.$on("eventName", function(event, param){
// Validate the permission
if(currentUserService.isAllowed(scope.validatePermission) !== true) {
el.remove();
} else {
// SHOW THE ELEMENT AGAIN!
}
});
};
或者是有另一種方式去刪除HTML並再次插入?因爲使用CSS,用戶可以通過開發者控制檯禁用...
在此先感謝!
爲什麼不用NG,如果已經這樣做了?如果這是一個交易破壞者,我會看ng-if的代碼,看看它是如何實現的。 –
當前用戶經常更改的用例是什麼?似乎只是在用戶更改時重新加載currentState就足夠了。我會非常猶豫地將一個監聽器添加到rootScope中。 –
Mike Feltman感謝我們的關注!我需要這種更新的可能性,因爲權限是在Link phasse之後加載的,所以我需要更新指令的展覽。 – LeonardoGuimaraes