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

时间:2016-03-07 04:50:29

标签: javascript angularjs angularjs-directive

这可能是因为我缺乏Angular的知识,如果是的话,请提前原谅我,如果是这样的话。

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

<div my-directive></div>

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

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

我想再次将click事件设置为来自该指令的相同div(假设在单击按钮后)。我该如何做到这一点?

2 个答案:

答案 0 :(得分:0)

您可以像这样使用 -

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");
          });

      }
   }
});

答案 1 :(得分:0)

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");
          });
      }
   }

});