javascript - 使用自定义名称构建面包屑

标签 javascript angularjs ngroute angularjs-ng-route

我正在尝试为我正在编写的网络应用程序制作自己的面包屑服务。唯一的问题是我想要面包屑的自定义名称,因为它们的名称不会出现在路径中。我的一个想法是替换所有 <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;

我打算让任何具有按钮的 Controller 允许更改路由以实现服务,并让 ng-clicks 代替 href 进行路由。我也乐于接受有关更好解决方案的建议。

编辑:修复了一个新手错误:P

最佳答案

您的函数不起作用,因为您在 for 循环中定义了 var index=0。但是你错误地在所有地方迭代了 i 而不是 index.你的代码应该是

for (var i = 0; i < breadcrumbs.length; i++) {
        if (breadcrumbs[index].path == path) {
            breadcrumbs = breadcrumbs.splice(index + 1);
            break;
        };
    };

关于javascript - 使用自定义名称构建面包屑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32051709/

相关文章:

javascript - Angular/html 中的 OrderBy

javascript - 如何使用来自 Google Maps Places API 的结果更新 Angular 范围参数?

angular - 如何在 Angular 2 中默认显示常见的页眉和页脚?

javascript - Superscrollorama - 多个元素的补间

javascript - 为什么功能会按顺序运行,即使它们是在循环内异步调用的?

javascript - 同一个 ActiveForm yii2 上的多个模型

angularjs - 涉及 ng-show 的 Protractor 测试

javascript - GWT 应用程序自 Firefox 41 起无法运行

javascript - 倒计时和重定向的正确方法

angularjs - Typed.js jQuery 插件不适用于 ngRoute