如何使用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重新加载页面?的主要内容,如果未能解决你的问题,请参考以下文章
href 导致使用 Angularjs 和 Twitter Bootstrap 意外重新加载页面
AngularJS的ui-router第一次点击激活路由加载页面,再次点击就没用,如何实现每次点击都激活加载路由一次