使用AngularJS的后退按钮时会产生误导性的面包屑

时间:2013-04-07 13:56:40

标签: javascript caching angularjs breadcrumbs

我正在使用ngBreadcrumbs-Service from Enrico Pulatzojsfiddle)。只要用户点击面包屑,推送面包屑和取消注册就可以正常工作。但是,如果使用了后退按钮或其他链接,则面包屑不会更新,并且在跟踪新路径时会显示最后一个条目两次。如何更改此行为以始终具有正确的痕迹痕迹?

Home > Users

点击用户并导航回来。面包屑应该只包括'Home'。

Home > Users > Users

点击用户后,再次导航并再次点击用户。

1 个答案:

答案 0 :(得分:0)

我添加了一个$ location.path观察者from this answer来减少数据挖掘面包屑,现在一切都按预期工作。

$rootScope.$watch(function() {
    return $location.path();
}, function(newValue, oldValue) {
    if (newValue !== oldValue) {
        if (newValue.split('/').length < oldValue.split('/').length) {
            data.splice(1, data.length);
  }
        $rootScope.$broadcast('breadcrumbsRefresh');
    }
}, true);