UI路由器事件导航到自己的页面

时间:2015-01-25 12:45:38

标签: angularjs angular-ui-router

我在AngularJS应用中使用ui-router进行页面路由。我遇到一个问题,如果我点击页面上的超链接引用我已经开启的页面/路线(即自己),则不会发生任何事情。

例如,如果您在页面中间向下滚动并单击引用当前页面的超链接,则看起来链接似乎没有加载,实际上没有什么需要当用户已在右页时加载。

这种情况下的目标是将视口移动到页面顶部,但是我无法从ui-router获取此事件的任何事件。我尝试了$ stateChangeStart和$ stateChangeSuccess,但由于没有发生路由更改,因此不会触发。

我的网址格式为http://localhost:3000/projects/myproject,ui-router的配置如下:

state('app.projects', {
    url: '/projects/:projectname',
    templateUrl: 'projects.html',
    controller: 'ProjectsCtrl'
}).

如果不在控制器中添加额外的逻辑(这会混淆自然的href =" projects / myproject"格式),可以做些什么来实现这个目标?

2 个答案:

答案 0 :(得分:1)

没有控制器:

<a ui-sref="stateName({reload: true})" target="_blank">Link Text</a>

使用控制器:

$state.go($state.name, {}, {reload: true});

答案 1 :(得分:0)

您只需在链接末尾使用#即可。 href="projects/myproject#"

相关问题