簡體   English   中英

檢測事件偵聽器是否已附加到Angular中的指令

[英]Detect if event listener is attached to directive in Angular

在我的指令中,我定義了以下事件:

function wizard() {
    return {
        scope: {
            raiseCancel: '&onCancel'
        },

然后再往下看,我嘗試檢查是否連接了偵聽器。 如果不是,我想執行一些默認行為。

if (scope.raiseCancel) scope.raiseCancel();
else $window.history.back();

但顯然scope.raiseCancel始終是真實的,因為Angular分配了一個匿名函數,當未附加事件偵聽angular.noop時,該函數調用angular.noop 如何檢測事件是否有監聽器?

您應該將raiseCancel作為事件處理程序進行處理,返回false可以防止默認行為。

當然,這意味着已通過raiseCancel處理程序中的代碼更改

if (scope.raiseCancel == null || scope.raiseCancel() !== false) {
    $window.history.back();
} 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM