$ location.path(" / home")和$ location. $$ path =" / home"之间的区别在angularjs

时间:2015-05-12 06:11:55

标签: javascript angularjs url location difference

我的样本POC中有一个登录页面和一个主页。

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

我已经尝试过以下代码,使用angular.$location

从登录页面重定向到主页

代码1

 $location.path("/home");

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

代码2

$location.$$path="/home";

此代码可能无效,因为该网页已重定向,但网址显示的是以前的网址,未更改重定向的网址

  
      
  • 为什么会这样?
  •   
  • code1 code2
  • 之间的区别是什么?   

2 个答案:

答案 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.$$urlthis.$$absUrl等。