我的样本POC中有一个登录页面和一个主页。
当用户完成登录后,我将从登录页面重定向到主页。
我已经尝试过以下代码,使用angular.$location
$location.path("/home");
此代码运行良好。没有问题。
$location.$$path="/home";
此代码可能无效,因为该网页已重定向,但网址显示的是以前的网址,未更改重定向的网址。
- 为什么会这样?
- code1 与 code2
之间的区别是什么?
答案 0 :(得分:0)
Angular对其某些API方法,属性和事件名称使用一美元($)。这些方法被认为是“公开的”并且开发人员可以安全使用。 它们是有记录的,不太可能有太大的变化,但如果它们发生了变化,那么有角度的团队会告诉我们它。
当你看到两美元($$)时,你最好离开那个。你当然可以按照你想要的方式使用它们(调试很好用),但你不应该这样做。如果您出于自己的目的使用它们,则无法保证它会在下一个次要版本更新时出现,因此您的代码变得更加脆弱。
答案 1 :(得分:0)
$$path
是角度的内部属性,你不应该触及它。
如果您在角度代码库(https://github.com/angular/angular.js/blob/master/src/ng/location.js#L480)中看到此位置服务代码。
$location.$$path = 'somepath'
,只会设置$$路径值
而,
$location.path('somepath')
还会做一些其他事情,例如在内部调用$$compose
并更新this.$$url
和this.$$absUrl
等。