首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用自定义名称构建breadcrumbs

使用自定义名称构建breadcrumbs
EN

Stack Overflow用户
提问于 2015-08-17 21:29:11
回答 1查看 91关注 0票数 3

我正在尝试为我正在编写的web应用程序制作自己的面包屑服务。唯一的问题是,我想要为面包屑自定义名称,因为它们的名称不会出现在路径中。例如,我的一个想法是用<a ng-click="goTo('/home', 'Home')">替换所有的<a ng-href="/home">

我害怕的一件事是浏览器的后退按钮。它把事情搞砸了,我正在试着想一个可能的解决方案,用一个$routeChangeSuccess的监听器。我的服务目前看起来是这样的(有点乱):

代码语言:javascript
复制
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-click来执行路由,而不是hrefs。我也对更好的解决方案的建议持开放态度。

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

EN

回答 1

Stack Overflow用户

发布于 2015-08-17 21:31:40

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

代码语言:javascript
复制
for (var i = 0; i < breadcrumbs.length; i++) {
        if (breadcrumbs[index].path == path) {
            breadcrumbs = breadcrumbs.splice(index + 1);
            break;
        };
    };
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32051709

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档