我在我的示例POC中有一个登录页面和主页。
用户完成签名后,我将从登录页面重定向到主页。
我尝试了以下代码,用于使用angular.$location
代码1
$location.path("/home");
此代码效果很好。没有问题。
代码2
$location.$$path="/home";
此代码可能无法正常工作,因为该页面是重定向的,但是显示了上一个URL,没有更改重定向的URL 。
- 为什么会发生这种情况?
- code1 和 code2
之间有什么区别
$$path
是角度的内部属性,您不应该触摸它。
如果您在Angular Code Base(https://github.com/angular/angular.js/blob/master/master/src/src/ng/location.js#l480)中看到此位置服务码。
$location.$$path = 'somepath'
,仅设置$$路径值
,而
$location.path('somepath')
还会做其他一些事情,例如内部调用$$compose
并更新this.$$url
和this.$$absUrl
等。
Angular使用单个美元($)用于其某些API方法,属性和事件名称。这些方法被视为"公共",开发人员安全使用。它们是有记录的,并且不太可能改变太大,但是如果他们确实改变了,那么Angular团队将告诉我们有关。
当您看到两美元($$)时,最好只剩下那个。您当然可以以任何方式使用它们(调试是一种很好的利用),但是您不需要。如果您出于自己的目的使用它们,则不能保证它在下一个次要版本更新中甚至会在那里,因此您的代码变得更加脆弱。