无法删除angular指令中的元素

时间:2014-07-07 07:45:56

标签: javascript angularjs

我为验证指令编写了以下代码片段:

angular.module('authDirective',[]).directive('hiAccess', ['authService', function(authService){
    return{
        restrict: 'A',
        compile:  function(element, attr){

            var userRole = authService.getUserRole();

            var allowedAccess = attr.hiAccess.split(" ");

            outerLoop: for(access in allowedAccess){
                for(role in userRole){
                    if(access == role) {
                        /*angular.forEach(element.children(), function(child){
                            //child.remove();
                        });*/
                        element.remove();
                        break outerLoop;
                    }
                }
            }

        }
    }
}]);

但由于element.remove():

,我在浏览器中遇到以下错误
  

TypeError:无法读取未定义

的属性'childNodes'

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

我在指令中使用了链接函数而不是编译,现在看起来工作正常。

答案 1 :(得分:0)

你可以尝试

function removeElement(elem, wait) {
     ripples.splice(ripples.indexOf(elem), 1);
     if (ripples.length === 0) {
         getRippleContainer().css({ backgroundColor: '' });
     }
     $timeout(function () {
         elem.remove();
     }, wait, false);
 }