Integrating with Angular 1.X
Angular provides an $exceptionHandler
decorator for capturing errors arising from your code. This example shows one way to plug TrackJS in to the $exceptionHandler
.
angular .module("YOUR_APP", []) .config(["$provide", function ($provide) { $provide.decorator("$exceptionHandler", ["$delegate", "$window", function($delegate, $window) { return function (exception, cause) { window.TrackJS && TrackJS.track(exception); // In *non-production* environments you may still want the error sent to the console. // You can delegate to the original handler (console.error) if you would like. // Warning, this can cause double tracking of errors, so do not use in production. // $delegate(exception, cause); }; }]); }]);
import angular from "angular"; import { TrackJS } from "trackjs"; angular .module("YOUR_APP", []) .config(["$provide", function ($provide) { $provide.decorator("$exceptionHandler", ["$delegate", "$window", function($delegate, $window) { return function (exception, cause) { TrackJS.track(exception); // In *non-production* environments you may still want the error sent to the console. // You can delegate to the original handler (console.error) if you would like. // Warning, this can cause double tracking of errors, so do not use in production. // $delegate(exception, cause); }; }]); }]);
angular .module("YOUR_APP", []) .config(["$provide", function ($provide) { $provide.decorator("$exceptionHandler", ["$delegate", "$window", function($delegate, $window) { return function (exception, cause) { window.trackJs && trackJs.track(exception); // In *non-production* environments you may still want the error sent to the console. // You can delegate to the original handler (console.error) if you would like. // Warning, this can cause double tracking of errors, so do not use in production. // $delegate(exception, cause); }; }]); }]);