Javascript 在AngularUI路由器中保留父状态
我正在用AngularJS开发一个应用程序,它有一个电话簿。状态Javascript 在AngularUI路由器中保留父状态,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,我正在用AngularJS开发一个应用程序,它有一个电话簿。状态页面。电话簿包含用户和公司列表以及带有过滤器的表单。数据通过ngResource从后端加载。如果我点击一个用户,我将进入用户详细信息页面。当我现在执行浏览器后退(backspace)操作时,我将返回电话簿列表,但使用了一个新的$scope。这意味着我失去了旧的状态和所有的过滤器、数据等 我想问题是我在页面视图中加载了状态页面.phonebook.user,它取代了页面.phonebook状态 但是否有可能保留旧的状态?这包括滚动位置
页面。电话簿包含用户和公司列表以及带有过滤器的表单。数据通过ngResource从后端加载。如果我点击一个用户,我将进入用户详细信息页面。当我现在执行浏览器后退(backspace)操作时,我将返回电话簿列表,但使用了一个新的$scope
。这意味着我失去了旧的状态和所有的过滤器、数据等
我想问题是我在页面
视图中加载了状态页面.phonebook.user
,它取代了页面.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'
}
}
});
你可以很好地维持这个状态。您需要将过滤器和滚动位置作为stateparams或服务的一部分进行持久化。一旦您在页面之间导航,您就可以将其检索回来。您是否尝试了ngRouteProvider
而不是stateProvider
?我希望有一个更简单的解决方案。然后我将创建一个服务。谢谢你的帮助。