我想重定向到同一页面中DOM的某些元素。
我使用了以下代码,
JS:
$scope.scrollTo = function (id) {
$location.hash(id);
$anchorScroll();
};
HTML:
<div>
<div id="chartdiv15" class="chartdiv"></div>
<div id="chartdata15" class="chartdata"></div>
</div>
和:
<md-input-container>
<label>Menu</label>
<md-select ng-model="menu">
.....
<md-option ng-click="scrollTo('chartdiv15')">click</md-option>
</md-select>
</md-input-container>
因此,此过程使我可以指向链接(http://localhost:3000/#/graphics#chartdiv15)
它到达该元素,在一秒钟之内它重定向到页面顶部,好像我什么都没有...
有人可以帮助我解决这个奇怪的问题吗?
谢谢 :)
最佳答案
您是否尝试过不使用$ location.hash(id);但只有$ anchorScroll(id);
根据$anchorscroll的文档:
调用时,它将根据HTML5规范中指定的规则滚动到与指定的哈希相关的元素,或滚动到(如果省略)当前位置的$ location.hash()。
在我的项目中,我仅使用$ anchorScroll(id),效果很好,但是URL不会更新。
如果您还希望更新URL,则应该使用:
$location.hash(id);
$anchorScroll(); // <- no id here
很抱歉没有直接回答您的问题,但我认为我们不能仅凭所提供的数据为您提供帮助,如果您添加了一个重现该问题的插件,则建议会更容易。