2

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

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

}
4

1 回答 1

4

删除 ng-click 属性将不起作用,因为删除属性后单击事件侦听器仍然存在。您需要将 ng-click 绑定设置为 null。

我创建了点击一次指令。它第一次监听元素点击事件并执行 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

于 2014-11-13T14:52:20.120 回答