Javascript angularjs中$location.path(“/home”)和$location.$$path=“/home”之间的差异

Javascript angularjs中$location.path(“/home”)和$location.$$path=“/home”之间的差异,javascript,angularjs,url,location,difference,Javascript,Angularjs,Url,Location,Difference,我的示例POC中有一个登录页面和一个主页 当用户完成登录后,我将从登录页面重定向到主页 我已经尝试了下面的代码,通过angular.$location从登录页面重定向到主页 代码1 此代码运行良好。没有问题 代码2 此代码可能无法工作,因为页面已重定向,但URL显示为以前的URL,不会更改重定向的URL 为什么会这样? 代码1和代码2之间的区别是什么 Angular的一些API方法、属性和事件名称使用一美元。开发人员认为这些方法是公开的,可以安全使用。 它们是记录在案的,不太可能有太大的变化,但

我的示例POC中有一个登录页面和一个主页

当用户完成登录后,我将从登录页面重定向到主页

我已经尝试了下面的代码,通过angular.$location从登录页面重定向到主页

代码1 此代码运行良好。没有问题

代码2 此代码可能无法工作,因为页面已重定向,但URL显示为以前的URL,不会更改重定向的URL

为什么会这样? 代码1和代码2之间的区别是什么
Angular的一些API方法、属性和事件名称使用一美元。开发人员认为这些方法是公开的,可以安全使用。 它们是记录在案的,不太可能有太大的变化,但如果它们确实发生了变化,那么angular团队会告诉我们

当你看到两块钱时,你最好别管它。当然,您可以按任何方式使用它们。调试是一个很好的用途,但您不需要这样做。如果您将它们用于自己的目的,则无法保证它在下一次小版本更新时也会出现,因此您的代码会变得更脆弱。

$$path是angular的内部属性,您不应触碰它

如果您在angular code base中看到此定位服务代码

$location.$$path='somepath',将仅设置$$path值

鉴于


$location.path'somepath'还将执行一些其他操作,如在内部调用$$compose并更新此。$$url和此。$$absUrl等。

以$$开头的angularjs属性应视为私有属性,不使用。.path执行其他操作,如更改$$path的值所不能完成的历史pushstate或hashtag更改
 $location.path("/home");
$location.$$path="/home";