刷新页面时保留页面数据

14

我是Angular的新手。我正在使用一个服务来获取对象列表并在第一页上显示它们。然后根据点击了哪个对象,我设置下一页的标签头。但是,在我刷新页面时,列表范围丢失了,并且标签头会抛出异常,导致页面无法显示信息。是否有办法保留先前屏幕上单击的对象的信息,即使在刷新第二页时也是如此?


在这种情况下,您只能使用本地存储或Cookie。 - maurycy
刷新是指浏览器刷新,还是在SPA中导航到不同的视图? - Chandermani
@Chandermani . 浏览器刷新。 - Nutan
4个回答

4

4
如果你是Angular的新手,并且正在处理非关键项目,那么远程服务的额外调用并不是世界末日。
“在刷新第二个页面时是否有办法保留上一个屏幕所点击对象的信息?”
你的应用程序中是否使用了路由?
请参考以下示例:http://plnkr.co/edit/Svg4Po13hMq7WxzNwKDc?p=preview 控制器
app.controller("main", function($scope) {
    $scope.items = [1,2,3,4];
}); 
app.controller("detail", function($scope, $routeParams) {
    $scope.myvalue = $routeParams.id;
});

路由配置

var app = angular.module("app", ['ngRoute']);
app.config(function ($routeProvider) {
    $routeProvider
      .when('/', {
        templateUrl: 'main',
        controller: 'main'
      })
      .when('/detail/:id', {
        templateUrl: 'detail',
        controller: 'detail'
      })
      .otherwise({
        redirectTo: '/'
      });
  });

当您刷新详细页面时,它会记住其状态。然后,您可以向服务请求数据。

2

1
处理这些情况的最佳实践是通过angular服务+本地存储的组合方式。
  • 服务将帮助您在两个页面/控制器之间传输数据。
  • 将该数据保存到本地存储中,可以帮助您在页面刷新时获取该数据。

如果数据只是URL中的ID,则@Michal Stefanow的答案也不错。

帮助链接


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接