在angularjs中捕获浏览器控制台错误并在弹出窗口中显示它们

Jin*_*dal 5 html javascript error-handling angularjs console.log

我已将jade转换为html,并使用jade.js在我的AngularJS应用程序的弹出窗口中显示预览.玉可以在textarea中编辑,我也有一个预览按钮.

问题是当用户在jade控制台中发现某些错误时,会显示正确的消息和行号.

我想在弹出窗口中而不是在控制台中显示此错误.

我在控制器中尝试了类似下面的东西,但它似乎不起作用:

$scope.emailShowPreview = function() {

    $scope.locals = $scope.variables_for_email_preview;

    window.onerror = function myErrorHandler(err, url, line) {
        alert("Error", err);
        return false; // so you still log errors into console
    }

    try {
        var jadeFunc = jade.compile($scope.editFileds.body);
    } catch {
        window.onerror();
    }

    // compile jade template to html
    // console error happens below
    $scope.templateFunc = jade.compile($scope.editFileds.body);
    $scope.compiledHtml = $scope.templateFunc($scope.locals);

    var modalInstance = $modal.open({
        scope: $scope,
        templateUrl: '../../views/email-preview-popup.html',
        backdrop: 'static',
    });
    $scope.close = function() {
        modalInstance.dismiss('cancel');
    };
};
Run Code Online (Sandbox Code Playgroud)

我在下面的页面中提到过但有点困惑: -

https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror