angular.module('BreadcrumbService', []).service('Breadcrumb', function (Observer) { var breadcrumbs = []; var ob = Observer.create(); this.getOb = function () { return ob; }; this.setBreadcrumb = function (name, route, index, replace, context) { if (!Number.isInteger(index)) { return; } breadcrumbs[index] = { name: name, route: route }; if (replace !== false) { breadcrumbs.splice(index + 1); } ob.notify(context); }; this.clearBreadcrumb = function (index, replace, context) { this.setBreadcrumb("", null, index, replace, context); }; this.getBreadcrumb = function () { return breadcrumbs; }; });