在访问“详细信息”页面时在“列表”页面上持久保存数据
我是一个有角度的新手,请耐心等待。在访问“详细信息”页面时在“列表”页面上持久保存数据
我一直在试图做一段时间,并不知道如何去做。
我有三个(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.go()。现在,当他们按下“后退”按钮时,他们会回到列表页面,但他们查询的所有数据现在都消失了。我能想到的唯一方法就是将页面转换为视图并将它们插入到1个状态,然后显示/隐藏它们,但是我觉得这不是Angular方式。
在此先感谢。
我建议以RESTfull方式使用路由。例商家资讯页面的路径可能是:
.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链接,以达到每个项目的详细信息页面。如果您使用的桌子,你的表身应被看作是这样的:
<tbody>
<tr ng-repeat= "recipe in recipes">
<td><a ng-href="#!/recipes/{{::recipe._id}}/details"></a></td>
</tr>
</tbody>
我不明白这是如何解决问题的。这看起来像我们只是重新组织页面。我不确定这是否解决了我提出的问题 –
遇到从列表中选择一个项目时,它会进入该项目的详细信息页面,因为可以为所选项目唯一构建路线,而不会在一个状态中隐藏其他项目。 (我认为更有角度的方式) –
使用服务来存储任何需要复制视图时用户返回 – charlietfl
@charlietfl这是另一种解决方案,我已经遇到。我感觉这可能是另一条好路线。我不知道为什么,但我希望有一个更优雅的'角'解决方案 –
这是角度的方式。当您离开视图时,控制器实例不见了,但服务是单例 – charlietfl