在我的指令中,我定义了以下事件:
function wizard() {
return {
scope: {
raiseCancel: '&onCancel'
},
然后再向下,我尝试检查是否附加了一个监听器。如果不是,我想执行一些默认行为。
if (scope.raiseCancel) scope.raiseCancel();
else $window.history.back();
但显然scope.raiseCancel
总是很简单,因为当没有连接事件监听器时,Angular会分配一个调用angular.noop
的匿名函数。如何检测我的事件是否有监听器?
答案 0 :(得分:1)
You should handle your raiseCancel as an event handler, returning false to prevent the default behaviour.
Of course that mean code change in the raiseCancel handler(s) passed
if (scope.raiseCancel == null || scope.raiseCancel() !== false) {
$window.history.back();
}