Angularjs 将数据持久化到";列表“;“访问时翻页”;详情;页

Angularjs 将数据持久化到";列表“;“访问时翻页”;详情;页,angularjs,persistent,detail,Angularjs,Persistent,Detail,我是一个棱角分明的新手,所以请容忍我 我已经试着做了一段时间,但不知道怎么做 我有三个(1个抽象父)状态,如下所示: .state('recipes', { url: '/recipes', abstract: true, template: '<ui-view/>' }) .state('recipes.listing', { url: '/listing', templateUrl: '/modules/recipes/client

我是一个棱角分明的新手,所以请容忍我

我已经试着做了一段时间,但不知道怎么做

我有三个(1个抽象父)状态,如下所示:

.state('recipes', {
    url: '/recipes',
    abstract: true,
    template: '<ui-view/>'
  })
  .state('recipes.listing', {
    url: '/listing',
    templateUrl: '/modules/recipes/client/views/recipes.listing.html',
    controller: 'RecipesController',
    controllerAs: 'vm',
    data: {
      pageTitle: 'Recipes'
    }
  })
  .state('recipes.details', {
    url: '/details',
    templateUrl: '/modules/recipes/client/views/recipes.details.html',
    controller: 'RecipesDetailsController',
    controllerAs: 'vm'
  });
.state('recipes'{
url:“/recipes”,
摘要:没错,
模板:“”
})
.state('recipes.listing'{
url:“/listing”,
templateUrl:“/modules/recipes/client/views/recipes.listing.html”,
控制器:'配方控制器',
controllerAs:'vm',
数据:{
页面标题:“食谱”
}
})
.state('recipes.details'{
url:“/details”,
templateUrl:“/modules/recipes/client/views/recipes.details.html”,
控制器:“Recipes Details控制器”,
controllerAs:'vm'
});
从列表页面,用户可以从中选择一个列表。。从列表中选择后,他们通过$state.go()访问详细信息页面。现在,当他们按下“后退”按钮时,他们返回到列表页面,但他们查询的所有数据现在都消失了。我能想到的唯一方法是将页面转换为视图,并将它们插入到1个状态,然后显示/隐藏它们,但我觉得这不是角度的方法


提前感谢。

我建议您完全使用路线。例如,您的登录页面路径可以是:

.state('recipes', {
    url: '/recipes',
    templateUrl: '/modules/recipes/client/views/recipes.listing.html',
    controller: 'RecipesController',
    controllerAs: 'vm',
    data: {
      pageTitle: 'Recipes'
    }
})
有关详细路线:

  .state('recipes.details', {
    url: '/recipes/:recipeID/details',
    templateUrl: '/modules/recipes/client/views/recipe.details.html',
    controller: 'RecipesDetailsController',
    controllerAs: 'vm'
  });
您可以添加基于id的链接以访问每个项目的详细信息页面。如果您使用table,您的表体应该如下所示:

<tbody>
    <tr ng-repeat= "recipe in recipes">
        <td><a ng-href="#!/recipes/{{::recipe._id}}/details"></a></td>
    </tr>
</tbody>


使用一个服务来存储在用户访问时复制视图所需的任何内容returns@charlietfl这是我遇到的另一个解决方案。我觉得这可能是另一条好路线。我不知道为什么,但我希望有一个更优雅的“角度”解决方案,这就是角度的方式。当你离开一个视图时,控制器实例消失了,但服务是一个单例的。我不明白这是如何解决问题的。看起来我们只是简单地重新组织了页面。我不确定这是否解决了我提出的问题。当从列表中选择一个项目时,它会进入该项目的详细信息页面,因为可以为所选项目唯一地构造路由,而不会在一种状态下隐藏其他内容。(我觉得角度更大)