如何使用UI-Router阻止持久性URL锚链接哈希值?

时间:2016-11-30 17:29:51

标签: angular angular-ui-router anchor

我在无哈希模式下使用Angular2和UI-Router 2用于在菜单中包含一些锚链接的简单应用程序。例如:

如果我从URL中带有散列的路由转到没有散列的路由,则散列仍然存在。例如,通过菜单从/blah/blech#specifications转到/blah/derp会导致浏览器地址为/blah/derp#specifications。显然这是不正确的,实际上有些限制,例如当我返回/blah/blech并且哈希值仍然存在时,将窗口发送到该锚位置。

另一个副作用是以某种不可预测的方式刷新页面。从/blah/derp转到/blah/blech#specifications会导致整页刷新。

设置非常标准:

export let derpState: Ng2StateDeclaration = {
    name: 'derpState',
    component: DerpComponent,
    url: '/derp'
}

如何将哈希链接与UI-Router 2结合使用? (或者,我如何以其他方式使用带有UI-Router的锚链接?)

1 个答案:

答案 0 :(得分:1)

你使用哪个版本的角度2?请升级它。不需要名字和所有。

import { ModuleWithProviders }  from '@angular/core';
import { Routes, RouterModule } from '@angular/router';

import { DerpComponent }    from './derp.component';

const derp: Routes = [
{ path: 'derp',  component: DerpComponent }
];
export const derpState: ModuleWithProviders = RouterModule.forChild(derp);

试试这个。希望这会对你有所帮助。