Ruby on rails 如何在angularjs中使用本机锚链接

Ruby on rails 如何在angularjs中使用本机锚链接,ruby-on-rails,angularjs,angularjs-routing,Ruby On Rails,Angularjs,Angularjs Routing,我在一个相当大的平面文档页面上使用angularjs。该页面有一些导航,旨在使用传统的url哈希链接。URL看起来是这样的: /documentation/flat#26166276基本事件 一旦导航发生并且我进入下一页,这些URL就会被重写。angular初始化为类似于: /documentation/flat#/26166276基本事件 这会中断导航。如果我已经在/documentation/flat路径上并点击了其中一个散列URL,那么它似乎可以工作。它被重写了,但浏览器仍然关注页面的正确

我在一个相当大的平面文档页面上使用angularjs。该页面有一些导航,旨在使用传统的url哈希链接。URL看起来是这样的:

/documentation/flat#26166276基本事件

一旦导航发生并且我进入下一页,这些URL就会被重写。angular初始化为类似于:
/documentation/flat#/26166276基本事件

这会中断导航。如果我已经在
/documentation/flat
路径上并点击了其中一个散列URL,那么它似乎可以工作。它被重写了,但浏览器仍然关注页面的正确部分

但是,如果散列url是从不同的路径触发的,那么当angularjs重写发生时,浏览器将不会关注正确的DOM元素

编辑:这是链接的标记的外观

<a href="/documentation/flat#26166276-basic-events">Basic Events</a>

<h1 class="chap-header" id="26166276-basic-events">2.1.0 Basic Events</h1>

2.1.0基本事件

此处进一步讨论了该主题:

我用了那根线的变体

if $location.$$url[0]== '#'
        $location.hash($location.$$url.replace('#', ''))
        $anchorScroll()

这基本上可以让我在任何锚链接的前面加上一个附加的
,angularjs将它们视为传统的锚有一个非常愚蠢的解决方案:在锚id的开头加上一个/

<a id='/my-id' />


你的标记看起来像什么?@JustinNiessner添加了一个标记示例你确定URL被重新写入标记中,而不是被你导航到的页面(在导航发生后)写入吗?很抱歉澄清,一旦出现导航,url将被重写。它会在浏览器的地址栏中更改url。然后,您可能希望删除此url,并询问“如何使用其他哈希值更好地发挥作用?”