Javascript 在AngularUI路由器中保留父状态

Javascript 在AngularUI路由器中保留父状态,javascript,angularjs,angular-ui,angular-ui-router,Javascript,Angularjs,Angular Ui,Angular Ui Router,我正在用AngularJS开发一个应用程序,它有一个电话簿。状态页面。电话簿包含用户和公司列表以及带有过滤器的表单。数据通过ngResource从后端加载。如果我点击一个用户,我将进入用户详细信息页面。当我现在执行浏览器后退(backspace)操作时,我将返回电话簿列表,但使用了一个新的$scope。这意味着我失去了旧的状态和所有的过滤器、数据等 我想问题是我在页面视图中加载了状态页面.phonebook.user,它取代了页面.phonebook状态 但是否有可能保留旧的状态?这包括滚动位置

我正在用AngularJS开发一个应用程序,它有一个电话簿。状态
页面。电话簿
包含用户和公司列表以及带有过滤器的表单。数据通过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
?我希望有一个更简单的解决方案。然后我将创建一个服务。谢谢你的帮助。