window.location和$ location.path有什么区别?

时间:2015-08-28 07:00:00

标签: javascript angularjs model-view-controller

在MVC angularJS应用程序中,如何重定向到MVC页面。

我在下面尝试了两个选项

第一

// It doesn't work
$location.path("/MyPage1");

第二

 //It works
 window.location = "/MyPage1";

请建议重定向的最佳方式,为什么?

请记住:我没有使用angularJs路由。

2 个答案:

答案 0 :(得分:0)

将$ location与window.location正式文件进行比较明确说明

请参阅此location

部分

与HTML5 API无缝集成

window.location:没有

$ location:yes(旧版浏览器的后备)

more

答案 1 :(得分:0)

两者都有自己的优点。 @Mohammad提到的official docs清楚地描述了它们。因此,根据具体情况选择以下任意一种:

使用 $ location :当您更改浏览器网址时不需要重新加载整页时,希望利用角度内部生命周期优势以及您不需要支持旧版的内容遗留浏览器。如果您的目标只是当前URL的变体,这可能很有用,这样您就可以利用$ location辅助方法。例如。我们运行$ location.search(...,...)来改变查询字符串参数的值。

使用原生窗口位置:当您需要更改网址并重新加载页面或导航到其他页面时,请使用较低级别的API:window.location.href或者当您需要时使用可以直接修改的行级对象属性。即强制重载window.location.reload()。