使用存储的路径更改AngularJS位置

时间:2013-08-10 16:18:32

标签: angularjs location

我试图在服务中存储$ routeChangeStart的“next route”参数,并使用来自不同位置的“next route”调用$ 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上有另一个post有类似的问题,但建议的解决方案似乎不起作用?那么我做错了什么?

由于

1 个答案:

答案 0 :(得分:1)

path()取一个nextroute {}对象的字符串。听起来你实际上想要捕获$locationChangeStart而不是它会让你访问路径。

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

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