我正在开发一个带有电话簿的AngularJS应用程序。状态page.phonebook
包含一个包含用户和公司的列表以及一个包含过滤器的表单。数据通过后端的ngResource加载。如果我点击用户,我将进入用户详细信息页面。当我现在回浏览器(退格)时,我回到了电话簿列表,但是使用了新的$scope
。这意味着我用我的所有过滤器,数据等丢失了旧状态。
我想问题是我在page.phonebook.user
视图中加载状态page
,这取代了page.phonebook
状态。
但它是否有可能保留旧状态?这包括滚动位置,过滤器值和来自服务器的数据。
这是我的州配置:
$stateProvider
.state('page', {
abstract: true,
controller: 'PageController',
templateUrl: 'app/templates/page.html',
})
.state('page.phonebook', {
url: "^/phonebook",
templateUrl: 'app/templates/page.phonebook.html',
controller: 'PhonebookController'
})
.state('page.phonebook.user', {
url: "^/user/:userId",
views: {
'@page': {
controller: 'UserController',
templateUrl: 'app/templates/page.user.html'
}
}
});
答案 0 :(得分:0)
你可以很好地维持状态。您需要保留过滤器,并将位置作为stateparams或服务的一部分滚动。在页面之间导航后,您可以将其检索回来。