1

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

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

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

提前致谢!

4

1 回答 1

0

对此的解决方案是,在您的路由/路径/url 中,您需要添加 ID 或唯一属性来标识您要签出其详细信息的项目。

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

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

在您$routeProvider将路线定义为:

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

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

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

于 2014-06-01T19:49:57.240 回答