[英]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.