app .factory('breadcrumbs', ['$rootScope', '$location', '$route', function($rootScope, $location, $route) { var breadcrumbs = []; var breadcrumbsService = {}; $rootScope.$on('$routeChangeSuccess', function(event, current) { var pathElements = $location.path().split('/'), result = [], i; var breadcrumbPath = function(index) { return '/' + (pathElements.slice(0, index + 1)).join('/'); }; pathElements.shift(); for (i = 0; i < pathElements.length; i++) { var br = breadcrumbPath(i); var route = null; for (r in $route.routes) { if ($route.routes[r].regexp.test(br)) { route = $route.routes[r]; } } if (route != null) { result.push({title: route.pageTitle, url: br}); } } breadcrumbs = result; }); breadcrumbsService.getAll = function() { return breadcrumbs; }; breadcrumbsService.getFirst = function() { return breadcrumbs[0] || {}; }; breadcrumbsService.getLast = function() { return breadcrumbs[breadcrumbs.length - 1] || {}; }; return breadcrumbsService; }]);