Javascript 如何在AngularJS中刷新时在不同视图上重定向?

Javascript 如何在AngularJS中刷新时在不同视图上重定向?,javascript,angularjs,angular-ui-router,partial-page-refresh,Javascript,Angularjs,Angular Ui Router,Partial Page Refresh,我正在用AngularJS开发一个应用程序。基本上,我有一个“主页”和一个“新项目”。在主页上,我有一个带有“新项目”链接的菜单 我将$stateProvider配置如下: $stateProvider.state('home', { url: '/', templateUrl: 'partials/home.jsp' }).state('newproject', { url: '/newproject', templateUrl: 'partials/new-p

我正在用AngularJS开发一个应用程序。基本上,我有一个“主页”和一个“新项目”。在主页上,我有一个带有“新项目”链接的菜单

我将$stateProvider配置如下:

$stateProvider.state('home', {
    url: '/',
    templateUrl: 'partials/home.jsp'
}).state('newproject', {
    url: '/newproject',
    templateUrl: 'partials/new-project.html'
})
所以,当我进入应用程序时,我就在主页上了。然后我点击“新项目”链接,我进入了“新项目”页面。现在url是

我的问题是,当我刷新页面时,我希望在主页上被重定向,即使我的浏览器栏中的url仍然存在

我怎样才能做到这一点

更新:

非常感谢您的回答。我使用了第二种解决方案,效果很好。一点澄清,以防有人应该有同样的问题,在重定向到主页之前,你必须防止默认操作。因此,正确的工作代码是:

$rootScope.$on("$locationChangeStart", function(event, next, current) { 

if(next==current && next=='/newproject')
    event.preventDefault();
    $state.go('home');

}))

在“newproject”的控制器中使用此选项,因为它正在侦听您的刷新:

$rootScope.$on('$locationChangeStart', function(event) {
     $state.go('home');
});
或者将其放入app.run()中


欢迎,如果您对event.preventDefault()满足:-)和+1,请标记它并向上投票。我忘了。标记!很抱歉,由于声誉点数(我<15),我无法向上投票。很高兴能帮助您。第一个选项对我不起作用,第二个选项使用$location.url(“/Home”)而不是$state call。效果非常好。在我的特殊情况下,必须使用
$location.url
而不是
$state.go
,但必须与
事件.preventDefault()成对使用。谢谢
$rootScope.$on("$locationChangeStart", function(event, next, current) { 

    if(next==current && next=='/newproject')
        $state.go('home');

});