在AngularJS中保存视图的状态

前端之家收集整理的这篇文章主要介绍了在AngularJS中保存视图的状态前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我开发了一个 html5应用程序
我有一个看法,用户评论正在加载.而且它是递归的 – 任何注释都有子部分,它们加载在同一个视图中并使用相同的控制器.

一切都好.但是,当我想回去时,再次加载评论,我失去了我的立场,应该再次滚动.

所以,我的问题是.当我回去时可以保存视图的状态.我以为使用一些技巧,就像随时点击子选项并隐藏以前的视图一样添加新视图.但我不知道该怎么做.

请帮忙.

是的,而不是将UI的状态加载到控制器中,而应该保持状态.这意味着,如果你这样做:
app.config(function($routeProvider){
 $routeProvider.when('/',{
   controller: 'MainCtrl'
 }).when('/another',{
   controller: 'SideCtrl'
 });
});

app.controller('MainCtrl',function($scope){
  $scope.formData = {};   

  $scope./* other scope stuff that deal with with your current page*/

  $http.get(/* init some data */);
});

您应该将初始化代码更改为您的服务,以及在此处的状态,这样可以在多个视图之间保持状态:

app.factory('State',function(){
  $http.get(/* init once per app */);

  return {
    formData:{},};
});

app.config(function($routeProvider){
 $routeProvider.when('/',function($scope,State){
  $scope.formData = State.formData;   

  $scope./* other scope stuff that deal with with your current page*/
});

app.controller('SideCtrl',State){
  $scope.formData = State.formData; // same state from MainCtrl

});

app.directive('myDirective',function(State){
  return {
    controller: function(){
      State.formData; // same state!
    }
  };
});

当你来回观看时,他们的状态将被保留,因为你的服务是一个单身,当你第一次将它注入你的控制器时被初始化.

还有一个新的ui.router,它有一个状态机,它是一个低级版本的$routeProvider,你可以使用$stateProvider精细的粒子持久状态,但它目前是实验性的(并将在角度1.3)

原文链接:https://www.f2er.com/angularjs/140458.html

猜你在找的Angularjs相关文章