【问题标题】:Angular's $anchorScroll not playing nicely with ng-showAngular 的 $anchorScroll 不能很好地与 ng-show 配合使用
【发布时间】:2015-10-10 13:27:11
【问题描述】:

我有一个应用程序,一旦单击按钮,它就会从 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 以 url/#/ 开头,然后当点击按钮时, 附加了#resultsAnchor,所以我的网址现在是url/#/#resultsAnchor。 然后,带有我的数据的ng-show div 将出现在一个实例中 消失。由于数据不存在,因此不会出现 anchorScroll。
  • 现在我的 URL 设置为 url/#/#resultsAnchor,在 第二次点击 ng-show div 出现,页面滚动到数据。

是什么阻止了这种情况的发生?

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

【问题讨论】:

    标签: javascript angularjs ng-show anchor-scroll


    【解决方案1】:

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

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

    最终导航到:

    url/#/details#memberTop

    【讨论】:

      猜你喜欢
      • 2013-04-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多