如何使用Angularjs重新加载页面?
问题的出现原因是用户想要通过Angularjs重新加载页面,但是他使用了错误的方法。
解决方法是在模块中定义$route,并将JS代码更改为以下内容:
$scope.backLinkClick = function () { window.location.reload(); };
这种方法虽然能够正常工作,但是在Angular应用中使用window.location.reload是一个不好的做法,应该使用$window包装器来代替window,以遵循Angular的抽象。用户2975967提供了一个不好但是可行的解决方案。
为什么会有那么多负面评价呢?有任何争论吗?我理解使用这种方法是一个不好的主意,但是只是点个踩而不解释为什么不好也不是更好的做法。这篇帖子有很多问题。首先,用户说你需要在模块中定义$route,然后却完全忽略了它,并且使用了window.location.reload,这在Angular应用中也是另一个不好的做法(应该使用$window包装器代替window)。用户2975967提供了一个不好但是可行的解决方案。
问题的出现原因是需要在AngularJS中重新加载页面,有时需要重新编译页面而不重新加载它。解决方法是使用$route服务并调用$route.reload()方法。另外,还可以使用$compile方法来重新编译页面。
下面是解决方法的具体步骤:
1. 确保将$route服务包含在作用域中。
2. 调用$route.reload()方法来重新加载页面。
3. 如果需要重新编译页面而不重新加载它,可以使用$compile方法。
例如,调用$compile(angular.element('whatever div wrapping ng-view')(scope))。
参考链接:
- [How to reload or re-render the entire page using AngularJS](https://stackoverflow.com/questions/16703215)