如何在angularjs中使用ui.router的$ stateChangeStart?

时间:2015-06-16 09:29:01

标签: angularjs angular-ui-router angular-routing

在我的angularjs移动应用程序中,我需要一些要求。最初,该应用程序位于主页中。如果用户需要转到该应用中的下一页,则必须单击该特定内容。它会将它们重定向到该特定内容的下一页。之后,如果他想要转到上一页(后面),他必须单击后退按钮。

我需要的是,当用户返回他所在的上一页时,该页面正在重新加载。他应该被带到他以前的同一个地方,而不是重新加载那个以前的页面。那么,如何禁用重新加载。我认为可以使用'ui.router'及其$ stateChangeStart来实现。对于url路由,我使用'$ routeProvider'。那么如何实现这一目标呢?请帮帮我。

对于主页,网址为 -

'/myapp/landingpage'

对于下一页(当他点击特定内容时),网址为 -

'myapp/content/:contentId'

1 个答案:

答案 0 :(得分:2)

如果您的主页是纯静态页面 - 那么不需要任何内容​​ - 主页的模板已经缓存在$ templateCache中。

否则,如果您的主页有一些从某些服务获取的数据,我建议您将数据缓存在angularjs服务层中。

您可以浏览$cacheFactory了解更多详情。

如果您不想直接使用$ cacheFactory,只需使用' cahce:true' yout $ http.get请求中的属性: -

$http.get(url, { cache: true}).success(...);

来自$http docs: -

  

cache - {boolean | Cache} - 如果为true,将使用默认的$ http缓存   缓存GET请求,否则如果使用的是缓存实例   $ cacheFactory,这个缓存将用于缓存。

这个想法不是为了缓存查看/状态以进行缓存,而是将该职责移交给您的服务层。