1

我在使用 $anchorScroll 时遇到了问题。我有一个在开始时不可见的 ng-ig 条件的 div。单击按钮时,我需要使用 $anchorScroll 函数进入该 div。这个按钮也使 div 可见。现在不起作用,因为我认为它会在创建 div 之前触发 $anchorScroll 。这是代码:

<body ng-app="testApp"  data-ng-controller="searchController as searchCtrl" >

  <div id="scrollArea">
      <form>
         //HTML input elements

         <div class="buttons">
             <md-button class="md-primary md-raised" ng-click="searchCtrl.gotoTable('resultTable')">Start</md-button>
             {{searchCtrl.test}}
         </div>
      </form>
  </div>
  <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
  <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
  <br/><br/><br/><br/><br/><br/><br/><br/><br/>
  <br/><br/><br/><br/><br/><br/><br/><br/>
  <br/><br/><br/><br/><br/><br/><br/><br/><br/>
  <br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>
  <!-- Smart Table for displaying result -->
  <div id="resultTable" class="rtable">
    <div ng-if="searchCtrl.test == true" >
      //table content
    </div>
  </div>

</body>

和角部分

var app = angular.module('testApp', []);

app.controller("searchController", function($scope, $location, $anchorScroll, $timeout){
    var self = this;
    self.test = false;

 self.gotoTable = function(resultTable) 
    {
      self.test = true;
      self.anchor(resultTable);
    };

  self.anchor = function(resultTable) {
    $location.hash('resultTable');
    $anchorScroll();
  } ; 
}); 

Plunker:http ://plnkr.co/edit/HrdN2ZACDui61l1kPHEj?p=preview

谢谢

4

1 回答 1

1

在玩弄了你的 plunker 之后,我发现为最新版本更新 angularJs 解决了这个问题。我不知道你是否可以更新你的角度版本?

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.5.7/angular.min.js"></script>
于 2017-03-23T09:29:56.117 回答