如何使用angular指令正确删除dom模型中的元素?
.directive('restrict', ['AuthService', function (authService) {
return {
restrict: 'A',
prioriry: 100000,
scope: false,
link: function () {
alert('1');
},
compile: function (element, attr, linker) {
var accessDenied = true;
var user = authService.getUser();
var attributes = attr.access.split(" ");
for (var i in attributes) {
if (user.roles.indexOf(attributes[i]) > -1) {
accessDenied = false;
}
}
if (accessDenied) {
element.children().remove();
element.remove();
}
}
}
此代码在最后一行抛出异常:
TypeError:无法读取未定义
的属性'childNodes'
指令适用于td或li元素,但对于a或div或span
则错误<span data-restrict access='EditUser' class="glyphicon glyphicon-trash" ng-click="deleteUser(u)"></span>
答案 0 :(得分:0)
不是这样做,你可以采用不同的方法,你可以添加一个控制器,根据相同的条件在作用域上设置一个标志(accessDenied),然后在你的指令上使用ng-if,或者第一个子元素失败这一点。