在使用AngularJS时,我们可能会遇到一个希望用户切换上下文并再次重新呈现所有内容的时期。AngularJS提供了一种方法,通过该方法我们可以重新呈现甚至重新加载整个页面。因此,在本文中,我们将看到如何重新加载路由,而不仅仅是重新加载整个页面或应用程序,因为刷新整个页面的机会很小,这可能会不时出现问题,我们还将看到如何重新加载路由。从服务器或从缓存本身重新加载整个页面。 AngularJS主要提供两种不同的重新加载和刷新方法
使用reload()方法:当我们只想重载当前路由而不是重新加载或刷新整个应用程序时,将使用角路由服务reload()方法。假设路由的控制器具有在实例化该控制器时调用的服务,并且当某些情况发生以刷新数据时,您需要重新调用那些完全相同的服务。因此,我们基本上可以做的是最大程度地减少所有重新加载任务的工作,就是可以调用$ route.reload() 。这不会刷新整个页面,但只会重新加载路由,这将重新实例化控制器并因此重新调用服务。
- 例子:
app.controller('ControllerName', ['$scope', '$route', function($scope, $route) { $scope.reloadRoute = function() { // Reload only the route which will re-instantiate $route.reload(); }; }]);
Usig location.reload()方法: location.reload()方法用于刷新或重新加载整个页面,可以选择强制重新下载内容。与使用“刷新”或“重新加载”按钮时,此方法产生的结果相同。它只是重置了我们整个网站的状态。默认情况下,此方法从缓存加载页面,当我们将forceGet属性设置为true时,将从服务器重新加载页面。此方法没有任何返回类型。
- 句法:
location.reload(forceGet)
- 示例: forceGet参数是可选参数,仅在我们要强制从服务器重新加载整个网站时才应使用。如果没有forceGet属性,则只会从缓存中重新加载网站。
function locationreload() { // To reload the entire page from the server location.reload(); }