如何从角度中的元素中删除属性?

时间:2014-11-13 14:46:56

标签: javascript angularjs events javascript-events self-destruction

如何使用Angular删除属性(或至少删除其值)?具体来说,假设我有一个ng-click事件。我希望这甚至只发射一次,我认为最简单的方法是在ng-click事件中进行“自毁”。

的内容
elementClicked = function(){
    //do work
    element.ngClick=null;

}

1 个答案:

答案 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