1

我正在尝试将 $routeChangeStart 的“下一条路线”参数存储在服务中,并使用来自不同位置的“下一条路线”调用 $location.path()。在这里澄清一些代码:

$scope.$on('$routeChangeStart', function (event, next, current) {
    service.nextRoute = next;
    $rootScope.$broadcast('event:someEvent');
});

...现在我抓住了这个事件并尝试做类似的事情(假设所使用的服务都被正确注入并且可用):

$rootScope.$on('event:someEvent', function() {
    //do some stuff
    $location.path(service.nextRoute);
});

我得到的是TypeError: Object #<Object> has no method 'charAt'调用$locaton.path(service.nextRoute);. StackOverflow 上的另一个帖子也有类似的问题,但建议的解决方案似乎不起作用?那么我做错了什么?

谢谢

4

1 回答 1

1

path()取一个字符串 wherenext是一个route {}对象。听起来您实际上想要捕获$locationChangeStart,这将使您可以访问路径。

scope.$on('$locationChangeStart', function(event, newVal, oldVal) {
});

根据此答案,这是一个未记录的功能。

于 2013-08-10T16:41:02.923 回答