从我的AngularJS主页我需要滚动到另一个页面中的锚标记.基于url,这两个页面都作为部分html进入ng-view组件.在启动服务器时,主页被加载并从那里需要转到常见问题页面.我使用#的正常href,但是没有指向目标页面中的正确div.这是我用$anchorScroll尝试的
这是控制器方法
$scope.scrollToFaq = function(id) {
$location.path("/faq")
$location.hash(id);
$anchorScroll();
}
以下是我在home.html中使用它的方法
<a ng-click="scrollToFaq('HERE')" href="" class="link">Here</a>
但这不能正常工作.如果我直接加载faq页面然后返回并从主页单击锚链接,它就可以工作.是否可以使用`$anchorScroll执行此操作
最佳答案 尝试使用Angular的$timeout服务.
$scope.scrollToFaq = function(id) {
$location.path("/faq");
$timeout(function(){
$location.hash(id);
$anchorScroll();
}, delay);
这里延迟是你想要等到锚点滚动发生的时间.我读过大约300毫秒/ 400毫秒的人工作.当我遇到这个问题时,我只需要在$timeout内调用$anchorscroll.因此,请使用最适合您的情况.
注意:我正在寻找不使用$timeout的解决方案.当我找到一个时会更新.