在实际页面刷新时执行功能

时间:2014-06-01 18:41:16

标签: angularjs angular-services

有没有办法在页面刷新时只在控制器中执行一个函数而不是另一个ng-view?

我有一个列表中的项目视图。当我点击其中一个项目时,它会转到一个详细信息页面,我将数据传递给服务并将其返回到详细信息页面,因此我不必再调用另一个$ http请求来获取单个项目数据。

这样可行,但是当我点击f5时,我想执行一个函数来执行$ http请求来获取项目数据。当我点击f5时,当然数据不再在服务中。

提前致谢!

1 个答案:

答案 0 :(得分:0)

对此的解决方案是,在您的路径/路径/网址中,您需要添加ID或唯一属性,以标识您要检查其详细信息的项目。

所以,让我们说你在路径/template/items

当用户选择第2项时,您可以将路径更改为/template/item/2

$routeProvider中将路线定义为:

$routeProvider.when('/template/item/:itemId', {..});

itemId将提供与该项目相关联的ID 在控制器中,使用$routeParams,您可以使用$routeParams.itemId读取此ID 查询您的服务,看看它是否包含此项目的详细信息。如果没有,请继续$http请求。

这样,即使您刷新屏幕,项目ID仍然存在于您的控制器可以从中检索的URL中,并执行相应的操作。