【问题标题】:How to reload a page using Angularjs?如何使用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

【问题讨论】:

标签: javascript 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');
        }

【讨论】:

    猜你喜欢
    • 2013-07-07
    • 2014-03-20
    • 2016-11-03
    • 2013-05-18
    • 1970-01-01
    • 1970-01-01
    • 2020-09-01
    • 2017-11-03
    • 2016-03-13
    相关资源
    最近更新 更多