Angular disableAutoScrolling无法使用html5mode导航

时间:2015-01-12 12:55:56

标签: javascript html angularjs angular-ui-router

在我的应用中,当页面向下滚动时,我会更改位置哈希值#。当div元素的顶部部分带有idsection-1出现在屏幕上,我通过$location.$hash()方法更改了哈希值。

为防止自动滚动浏览器行为,我使用disableAutoScrolling。当禁用html5mode时,所有内容都按预期工作,并且页面在散列更改时不会自动滚动。但是当我启用html5mode时,它会忽略disableAutoScrolling并将页面滚动到位置散列更改事件上的元素。

这是负责html5mode和autoScroll预防的代码的一部分。

app.config(['$anchorScrollProvider' , '$locationProvider', function ($anchorScrollProvider, $locationProvider) {
        $anchorScrollProvider.disableAutoScrolling();
        $locationProvider.hashPrefix('!');
        $locationProvider.html5Mode(true);
}]);

现在我看到唯一的解决方法 - 在div ID中附加一些额外的字符,以避免此滚动。

Angular 1.3.8(1.3.5也有此)+ angular-ui-router 0.2.13(0.2.11也有此)。

任何想法如何解决? 感谢。

0 个答案:

没有答案