Javascript $route.current.pathParams和$routeParams之间的差异

Javascript $route.current.pathParams和$routeParams之间的差异,javascript,angularjs,Javascript,Angularjs,我正在尝试在不刷新页面的情况下更新url,我正在使用此解决方案: 我注意到该代码在以下情况下起作用: $route.current.pathParams.program = "someValue"; $location.path('/myapp/' + $routeParams.program); 但该代码不起作用: $routeParams.program = "someValue"; $location.path('/myapp/' + $routeParams.program); 我想

我正在尝试在不刷新页面的情况下更新url,我正在使用此解决方案:

我注意到该代码在以下情况下起作用:

$route.current.pathParams.program = "someValue";
$location.path('/myapp/' + $routeParams.program);
但该代码不起作用:

$routeParams.program = "someValue";
$location.path('/myapp/' + $routeParams.program);

我想知道这两者的区别是什么,为什么其中一个有效,而另一个无效?

这不起作用,因为AngularJS在路线改变之前,根据

请注意,$routeParams仅在路线更改后更新 成功完成。这意味着你不能依赖 $routeParams在路由解析功能中正确。相反,你可以 使用$route.current.params访问新路由的参数