window.location.href和this.router.url之间的区别?

时间:2018-11-03 15:33:58

标签: javascript angular typescript

我知道有很多方法可以在Angular中获取当前URL,例如:

this.router.url

但是,我的问题是: 通过执行 this.router.url 而不仅仅是 window.location ,我可以获得什么好处?有人可以向我解释吗?非常感谢!

1 个答案:

答案 0 :(得分:0)

通常,您可能不想直接与窗口或任何全局对象交互。原因是理论上angular可以在浏览器之外运行,因此不会有windowdocument,并且您想安全地桥接它。 router正是在这样做

如果您看一下文档,可能会发现一个更好的主意:

  

在选项卡式浏览器中,每个选项卡均由其自己的Window对象表示;   在给定标签中运行的JavaScript代码所看到的全局窗口   始终代表其中运行代码的选项卡。那就是   即使在选项卡式浏览器中,某些属性和方法仍然适用于   包含选项卡的整个窗口,例如resizeTo()和   innerHeight。一般而言,任何不能合理地与   标签与该窗口有关。

对于标签式浏览器而言,这是正确的。电话具有另一个API,可以与诸如相机之类的事物进行通话。而且手机可能还会丢失桌面上存在的某些内容。