2016-03-07 21 views
0

這可能是我缺乏Angular知識的結果,如果是這樣,請事先原諒我,如果是這樣的話。在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"); 
      }); 
     } 
    } 
}); 

我想再次設置點擊事件到同一個div從這個指令(比方說,一個按鈕被點擊後)。我該如何做到這一點?

+2

除刪除點擊,使用一個變量來存儲狀態,並基於該變量的狀態的動作。 –

+0

@Sherin Mathew我認爲它會降低做類似的事情。但是我仍然想知道是否有可能重新應用該事件,或者在調用.off()後完全消失。 – user3064776

回答

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

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

});