如何在 AngularJS 中刷新时重定向到不同的视图
How to redirect on different view on refresh in AngularJS?
我正在用AngularJS开发一个应用程序。基本上,我有一个"主页"和一个"新项目"。在主页中,我有一个菜单,其中包含指向"新项目"的链接。
我按如下方式配置了$stateProvider:
$stateProvider.state('home', {
url: '/',
templateUrl: 'partials/home.jsp'
}).state('newproject', {
url: '/newproject',
templateUrl: 'partials/new-project.html'
})
所以,当我进入应用程序时,我在主页上。然后我点击"新项目"链接,我在"新项目"页面。现在网址已 http://myapp/newproject
我的问题是,当我刷新页面时,我希望在主页上重定向,即使浏览器栏中的 url 仍然 http://myapp/newproject
我怎样才能做到这一点?
更新:
非常感谢松鼠的回答。我使用了第二种解决方案,它就像一个魅力。稍微澄清一下,以防万一有人遇到同样的问题,在重定向到主页之前,您必须防止默认操作。所以正确的工作代码是:
$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() 中;
$rootScope.$on("$locationChangeStart", function(event, next, current) {
if(next==current && next=='/newproject')
$state.go('home');
});
相关文章:
- ng视图外的链接重定向到ng视图内的页面
- asp.net MVC,重定向到视图,视图打开新窗口到外部url,它'It’’’’我们被当成一种风景
- ASP.NET angularjs重定向到控制器的另一个视图
- 如何在jqueryajax调用中使用springmvc重定向到视图
- 重定向(URl)提供控制器视图 URI模式
- 谷歌CSE-我可以显示嵌入在我的网站上的页面本身,而不是从结果视图重定向到页面
- AJAX上重定向视图的正确方式'成功'MVC应用程序中
- 在视图中重定向会破坏原始控制器操作(Yii)
- 如何在 AngularJS 中刷新时重定向到不同的视图
- 安卓网页视图位置重定向
- 如何从另一个视图上编写的 JS 代码重定向到控制器,并将 JSON 对象随之传递
- UI 路由器不断重定向到索引,并且不加载状态/视图
- 重定向到剃须刀应用程序中的另一个视图
- 角度重定向到其他方式而不检测视图,但当我单击后退按钮时它可以工作
- 使用Firebase和Ionic登录Facebook后重定向视图
- 在模态中加载分部视图时发生错误时重定向到错误页面
- 如何在没有持续服务器请求的情况下在 AngularJS 中进行视图重定向
- 从部分视图重定向 - 已发布不起作用,但开发是可以的
- 用参数从视图重定向到控制器
- Laravel从视图重定向到路由