刷新一个Angular页面(controller $ scope,指令$ scope)来模拟页面的第一次加载而不是$ window.location.reload

时间:2017-03-03 11:30:50

标签: javascript angularjs highcharts

我正在寻找一种方法来清除或刷新我的Angular应用程序,这不像$window.location.reload();那么粗糙。

我遇到一个问题,我的Highcharts图表(使用highcharts-ng)无法在后退导航中正确渲染(即,一旦您加载了页面并浏览了另一个页面并返回到第一页)。这是我在Stackoverflow和Highcharts论坛上发布的一个问题,但是对于一个解决方案没有运气。

无论如何,我已经搜索了从高到低的最佳方法来重新加载我的页面(它是唯一可以正确呈现我的图形的工作解决方案),但只找到了`$ window.location.reload();'上班。但是,这并不理想。人们可以看到页面重新加载等。

所以...我希望有人可以在不重新加载页面的情况下实现类似的功能。也许清除缓存的数据,或模拟对控制器的调用作为“第一次调用”(如果这有意义),清除特定控制器的$ scope或highcharts-ng指令的$ scope中的任何残余?

我尝试了一些chart.reflow(),使用我的chart.config设置等重新创建图表。

PS:创建JsFiddle的元素太多了。

谢谢!

链接到我关于Highcharts的问题:https://forum.highcharts.com/highcharts-usage/chart-changes-settings-on-back-navigation-in-angular-app-t37395/

1 个答案:

答案 0 :(得分:0)

如果您使用默认$routeProvider,则可以运行$route.reload()。 如果您使用$ ui-router尝试$state.reload()