有没有办法只在页面刷新时在控制器中执行一个功能,而不是去另一个 ng-view?
我看到了列表中的项目。当我单击其中一个项目时,它会转到详细信息页面,在该页面中我将数据传递给服务并将其返回到详细信息页面,因此我不必调用另一个 $http 请求来获取单个项目数据。
这可行,但是当我点击 f5 时,我想执行一个函数来执行 $http 请求以获取项目数据。当我按 f5 时,数据当然不再在服务中了。
提前致谢!
有没有办法只在页面刷新时在控制器中执行一个功能,而不是去另一个 ng-view?
我看到了列表中的项目。当我单击其中一个项目时,它会转到详细信息页面,在该页面中我将数据传递给服务并将其返回到详细信息页面,因此我不必调用另一个 $http 请求来获取单个项目数据。
这可行,但是当我点击 f5 时,我想执行一个函数来执行 $http 请求以获取项目数据。当我按 f5 时,数据当然不再在服务中了。
提前致谢!
对此的解决方案是,在您的路由/路径/url 中,您需要添加 ID 或唯一属性来标识您要签出其详细信息的项目。
所以,让我们说你在路上/template/items
。
当用户选择第 2 项时,您将路径更改为/template/item/2
.
在您$routeProvider
将路线定义为:
$routeProvider.when('/template/item/:itemId', {..});
将itemId
提供与项目关联的 ID。
在控制器中,$routeParams
您可以使用 读取此 ID $routeParams.itemId
。
查询您的服务并查看它是否包含此项目的详细信息。如果没有,则继续$http
请求。
这样,即使您刷新屏幕,项目 ID 仍然存在于 URL 中,您的控制器可以从中检索它并执行适当的操作。