如何使用Angularjs重新加载页面?

Posted

技术标签:

【中文标题】如何使用Angularjs重新加载页面?【英文标题】:How to reload a page using Angularjs? 【发布时间】:2013-09-17 19:19:30 【问题描述】:

我有一个链接。当用户点击此链接时,页面将被重新加载。我是通过以下方式做到的......

HTML

<div data-ng-hide="backHide" class="offset6 pull-right">
     <a href="" data-ng-click="backLinkClick()"><< Back  <br/> <br/></a>
 </div>

JS

$scope.backLinkClick = function () 
            window.location.reload(false); 
        ;

在控制器中我使用了 javascript,这在我看来非常糟糕。我该如何使用angularjs

【问题讨论】:

如果你使用路由,你可以$route.reload(); 不,我没有使用路由 我不认为在这里不使用角度是一个坏主意。只需在 onclick="window.location.reload(false)" 的 onclick 内移动您的代码 如果你必须使用window,你应该使用包装器:$window。但是,$route.reload() 可能就是您要找的。​​span> How to reload or re-render the entire page using AngularJS的可能重复 【参考方案1】:

确保将 $route 服务包含在您的作用域中并执行以下操作:

$route.reload();

看这个:

How to reload or re-render the entire page using AngularJS

【讨论】:

我有时不得不重新编译页面而不重新加载它(例如,我有一种特殊的本地化方法)。然后我就打电话给$compile(angular.element('whatever div wrapping ng-view')(scope))【参考方案2】:

你也可以在注入 $window 服务后试试这个。

$window.location.reload();

【讨论】:

我没有使用角度路由,这对我来说非常有效。【参考方案3】:

您需要在您的模块中定义 $route 并将 JS 更改为此。

$scope.backLinkClick = function () 
  window.location.reload(); 
;

这对我来说很好。

【讨论】:

为什么有这么多负面?有什么论据吗?我知道使用这是一个坏主意,但只是投反对票,不要描述为什么不是更好。 @alexche8 帖子有很多问题。首先,用户说你需要在你的模块中定义 $route ,然后通过使用 window.location.reload 完全忽略它自己,这直到角度应用程序中的另一个不好的做法(使用 $window 包装器而不是 window 否则你会破坏角度抽象) . user2975967 建议是一个糟糕但有效的解决方案。【参考方案4】:
$scope.rtGo = function()
            $window.sessionStorage.removeItem('message');
            $window.sessionStorage.removeItem('status');
        

【讨论】:

以上是关于如何使用Angularjs重新加载页面?的主要内容,如果未能解决你的问题,请参考以下文章

AngularJS - 如何在整个页面加载时进行重定向?

href 导致使用 Angularjs 和 Twitter Bootstrap 意外重新加载页面

AngularJs:重新加载页面

AngularJS的ui-router第一次点击激活路由加载页面,再次点击就没用,如何实现每次点击都激活加载路由一次

AngularJS:如何在页面完全加载之前显示预加载或加载?

防止页面重新加载状态