1

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

我遇到的问题是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 以 as 开头url/#/,然后在单击按钮时 #resultsAnchor附加,所以我的 URL 现在是url/#/#resultsAnchor。我的ng-show div数据将出现一个实例然后消失。由于数据不存在,因此不会发生 anchorScroll。
  • 现在我的 URL 设置为url/#/#resultsAnchor第二次点击ng-show div 出现,页面滚动到数据。

一键阻止这种情况发生的原因是什么?

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

4

1 回答 1

0

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

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

最终导航到:

url/#/details#memberTop

于 2016-08-25T21:45:43.783 回答