首页 > 解决方案 > 当我使用 $locationProvider.html5Mode(true); 时,$window.location.href 刷新整个页面;

问题描述

我在我的应用程序中使用了 html5mode。 $locationProvider.html5Mode(true);

当我$window.location.href在我的应用程序中使用它时,它会重新加载整个页面。

如果我删除$window并使用$state.go该页面,则不会完全像那样重新加载。

有谁知道为什么会这样?使用时是否有任何解决方案可以不重新加载整个页面$window

标签: angularjs

解决方案


重新加载确实是由于 $window.location.href use

您可以使用$location.path方法更改 URL,而无需重新加载整个页面。

$location.path('/newUrlValue');

您还可以在标题中为相对链接添加基本标记:

<html>
    <head>
        <base href="/">
    </head>
</html>

对于无法处理 HTML5 History API 的浏览器,将自动使用 hashbang 前缀(默认为 '!'),并且可以使用hashPrefix提供者的方法进行更改。


推荐阅读