我试图在服务中存储$ 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有类似的问题,但建议的解决方案似乎不起作用?那么我做错了什么?
由于
答案 0 :(得分:1)
path()
取一个next
为route {}
对象的字符串。听起来你实际上想要捕获$locationChangeStart
而不是它会让你访问路径。
scope.$on('$locationChangeStart', function(event, newVal, oldVal) {
});
根据此answer,这是一个未记录的功能。