如何使用Angular删除属性(或至少删除其值)?具体来说,假设我有一个ng-click
事件。我希望这甚至只发射一次,我认为最简单的方法是在ng-click事件中进行“自毁”。
elementClicked = function(){
//do work
element.ngClick=null;
}
答案 0 :(得分:4)
删除ng-click属性将不起作用,因为在删除属性后,click事件侦听器仍然存在。您需要将ng-click绑定设置为null。
我创建了 click-once 指令。它会侦听元素单击事件并首次执行ng-click绑定,然后将其删除。
.directive('clickOnce', function() {
return {
scope: {
'ngClick': '&'
},
link: function(scope, element) {
element.bind('click', function() {
if (scope.ngClick) {
scope.ngClick();
scope.ngClick = null;
}
});
}
}
});
这是标记:
<button click-once ng-click="doThis()>my button<button>
这是jsFiddle。