在 Angular 指令中,如何在删除事件后重新应用事件侦听器

In an Angular directive, how do you reapply an event listener after the event has been removed?

本文关键字:事件 新应用 应用 侦听器 Angular 删除 指令      更新时间:2023-09-26
这可能是因为我缺乏 Angular 知识的结果,如果是这样,

如果是这样,请提前原谅我。

在 Angular 中,假设我有一个指令,它作为属性绑定到一个元素。

<div my-directive></div>

在指令中,我有一个单击事件,它将删除单击事件本身。

app.directive("myDirective", function() {
   return {
      link: function(scope, ele, attr, ctrl) {
          ele.on("click", function() {
              ele.off("click");
              console.log("Click event removed");
          });
      }
   }
});

我想再次将单击事件设置到此指令中的同一div(假设在单击按钮之后)。 我该如何实现此目的?

你可以

这样使用-

app.directive("myDirective", function() {
   return {
      link: function(scope, ele, attr, ctrl) {
          ele.on("click", function() {
              ele.unbind("click");
              console.log("Click event removed");
             angular.element(ele).bind("click");
          });
      }
   }
});
app.directive("myDirective", function() {
   return {
      link: function(scope, ele, attr, ctrl) {
          ele.on("click", function() {
              angular.element(ele).off('click');
              console.log("Click event removed");
          });
      }
   }
});