Angular的$ anchorScroll与ng-show

时间:2015-10-10 13:27:11

标签: javascript angularjs ng-show anchor-scroll

我有一个应用程序,一旦点击一个按钮就会从JSON文件中显示数据(ng-show)。

我遇到问题的是anchorScroll,它只会在点击按钮两次后滚动到锚点。我需要它才能在第一次点击时工作。

这里应该发生魔法,但不是

var onSearchComplete = function(results){
            $scope.showResults = true; //ng-show listens for this to be true
            $scope.results = results;

            $timeout(function() {
                $location.hash('resultsAnchor');
                $anchorScroll();
            });
        };

这就是我所知道的:

  • 首先点击:最初我的网址开始为url/#/,然后点击按钮时, 附加了#resultsAnchor,因此我的网址现在为url/#/#resultsAnchor。 然后,我的数据的ng-show div将出现在实例中 消失。没有anchorScroll,因为数据不存在。
  • 现在我的网址设置为url/#/#resultsAnchor,而第二次点击 显示ng-show div,页面滚动到数据。

什么是通过一次点击停止这种情况?

注意:我添加了$ timeout功能,否则需要三次点击。单击1 - 将锚点附加到URL,单击2 - 出现数据,单击3 - 页面滚动。

1 个答案:

答案 0 :(得分:0)

我刚遇到类似的问题,并通过在哈希中添加位置前缀来纠正。

location.hash = '/details#memberTop';
$anchorScroll();

最终导航到:

URL /#/细节#memberTop