Angularjs 从chrome repl启动$exceptionHandler
我正在覆盖默认的Angularjs 从chrome repl启动$exceptionHandler,angularjs,exceptionhandler,Angularjs,Exceptionhandler,我正在覆盖默认的$exceptionHandler,类似于angular网站上的内容:$exceptionHandler 效果很好 然而,我还不清楚当一个命名事件的处理程序不发出($emit)时,如何“观察”这个过程,该事件的处理程序会显式地将错误(变戏法或其他方式)传递到$exceptionHandler中(在“.directive | | | config | service |.run |等”中注入) TL:DR-我想知道如何模拟默认angular$exceptionHandler要拾取的
$exceptionHandler
,类似于angular网站上的内容:$exceptionHandler
效果很好
然而,我还不清楚当一个命名事件的处理程序不发出($emit
)时,如何“观察”这个过程,该事件的处理程序会显式地将错误(变戏法或其他方式)传递到$exceptionHandler中(在“.directive | | | config | service |.run |等”中注入)
TL:DR-我想知道如何模拟默认angular$exceptionHandler要拾取的未处理异常-特别是从chrome控制台/REPL?您需要在摘要循环中运行生成异常的代码。更具体地说,您需要将其传递给
$apply
,因为$digest
本身不使用$exceptionHandler
$apply的伪代码
:
function $apply(expr) {
try {
return $eval(expr);
} catch (e) {
$exceptionHandler(e);
} finally {
$root.$digest();
}
}
例如,您可以从控制台执行以下操作:
window.test = function(fn) {
angular.element(document.querySelector('.ng-scope'))
.injector()
.get('$rootScope')
.$apply(fn);
}
window.test(function () { var a = b; });
window.test(function () { throw "Error"; });