Angularjs 导航回状态而不重新加载模板

Angularjs 导航回状态而不重新加载模板,angularjs,angular-ui-router,Angularjs,Angular Ui Router,我做了一些研究,但没有找到确切的答案。我有一个主要的应用区域,在那里我加载不同的屏幕。从一个屏幕我想打开一个页面,将覆盖整个屏幕。因此,导航到“viewreport”正是这样做的。当我点击浏览器的后退按钮或在整个屏幕页面上有我自己的后退按钮时,我希望返回到以前的状态,而无需重新加载其模板和控制器。换句话说,我想查看在打开整个屏幕页面之前所做的所有选择。以下是我的状态配置: $stateProvider .state('body', { url: '/',

我做了一些研究,但没有找到确切的答案。我有一个主要的应用区域,在那里我加载不同的屏幕。从一个屏幕我想打开一个页面,将覆盖整个屏幕。因此,导航到“viewreport”正是这样做的。当我点击浏览器的后退按钮或在整个屏幕页面上有我自己的后退按钮时,我希望返回到以前的状态,而无需重新加载其模板和控制器。换句话说,我想查看在打开整个屏幕页面之前所做的所有选择。以下是我的状态配置:

$stateProvider
        .state('body', {
            url: '/',
            abstract: true,
            template: '<div ui-view />'
        })
        .state('viewreport', {
            url: 'viewreport',
            templateUrl: 'wholescreen.html',
            controller: 'wholescreenController'
    });
我正在从htmlReportParamsController导航到viewreport状态。然后,新页面将打开至整个屏幕。那部分很好用。但是当点击浏览器的后退按钮时,导航回htmlreports将重新加载“body.htmlreports”状态。有没有办法不重新加载模板就返回到它

更新。为什么我认为它不是复制品。 在发布之前,我尝试了其中的建议。这:
$state.transitiono('yourState',params,{notify:false})

仍然会重新加载“yourState”。另外,提供的链接中的用例与我的不完全相同。因为当我在整个屏幕上加载新视图时,OP对已经加载的视图使用编辑模式

谢谢使用

$window.history.back();
在控制器的依赖项注入中添加$window。这将刷新您的页面,并且不会重新加载我们选择的数据

请保持这样的状态

function ($stateProvider) {
$stateProvider.state('body.htmlreports', {
    templateUrl: function ($stateParams) {
            return 'htmlReports.html';
    },
    controller: 'htmlReportsController',
    url: 'htmlreports',
}).state('body.htmlreports.reportarea', {
    templateUrl: 'htmlReportParams.html',
    controller: 'htmlReportParamsController',
}).state('body.htmlreports.reportarea.viewreport', {
    url: 'viewreport'
});

您描述的“粘性状态”的功能可能重复。如果使用UIRouter 0.x,则可以使用UIRouter附加的粘性状态。如果你在ui路由器1.0+上,你可以使用Ah的粘性状态,我明白了。我一定要看看。谢谢。不,它将重新加载以前的状态。但我想在不重新加载的情况下显示它。表示应保留所选内容。viewreport状态也作为主体状态的一部分进行维护,并应使用相同的控制器和html。那就行了你能澄清一下你的意思吗?导航到body.htmlreports.reportarea.viewreport并没有打开我的整个屏幕页面。
function ($stateProvider) {
$stateProvider.state('body.htmlreports', {
    templateUrl: function ($stateParams) {
            return 'htmlReports.html';
    },
    controller: 'htmlReportsController',
    url: 'htmlreports',
}).state('body.htmlreports.reportarea', {
    templateUrl: 'htmlReportParams.html',
    controller: 'htmlReportParamsController',
}).state('body.htmlreports.reportarea.viewreport', {
    url: 'viewreport'
});