我正在尝试为我正在编码的网络应用程序制作自己的面包屑服务。唯一的问题是我想为面包屑自定义名称,因为它们的名称不会出现在路径中。例如,我的一个想法是用 替换<a ng-href="/home">
所有<a ng-click="goTo('/home', 'Home')">
。
我害怕的一件事是浏览器的后退按钮。它搞砸了,我正在尝试使用 $routeChangeSuccess 的侦听器来考虑可能的解决方案。我的服务目前看起来像这样(有点乱):
portalServices.factory('breadcrumbsService', ['$rootScope', '$location', function($rootScope, $location) {
var breadcrumbs = [];
var update = function(name, path) {
$location.path(path);
for (var index = 0; index < breadcrumbs.length; index++) {
if (breadcrumbs[index].path == path) {
breadcrumbs = breadcrumbs.splice(index + 1);
break;
};
};
breadcrumbs.push({name: name, path: path});
};
return breadcrumbs;
我计划让任何控制器具有允许更改路由以实现服务并使用 ng-clicks 来执行路由而不是 hrefs 的按钮。我也愿意接受更好的解决方案的建议。
编辑:修复了一个新手错误:P