当我调用其他提交函数时,$ anchorScroll正在进行第二次单击

时间:2016-02-18 09:27:01

标签: javascript angularjs nested location

我仍然面临这个问题。我的问题有点不同

我在其他情况下调用我的$ anchorScroll函数。提交表单时。它正在进行第二次点击,如上所述。我也曾尝试过早期的解决方案,但没有运气:(

 $scope.scrollTo = function(element) {
    var old = $location.hash();
    $location.hash(element);
    $anchorScroll();
    $( 'html, body').animate({
        scrollTop: $(element).offset().top
    }, 1000);
    $location.hash(old);
};

我在另一个函数中调用它,即提交表单。

 $scope.saveProfile = function (profile) {
 $log.debug("now the profile is " + JSON.stringify(profile));
 dataFactory.persistChange("profiles",profile,$scope,postSuccessUpdate);
  $scope.scrollTo( "#error ");
}

这是我的主播

 <div ng-class="statusDisplayClass" ng-show="messages" id="error">
       Here it will be displayed
      </div>

请帮我解决这个问题。我缺乏的地方。

1 个答案:

答案 0 :(得分:0)

您可以将$scope.scrollTo( "#error ");更改为$location.hash('error'); $anchorScroll();

它应如下所示:

 $scope.saveProfile = function (profile) {
   $log.debug("now the profile is " + JSON.stringify(profile));
     dataFactory.persistChange("profiles",profile,$scope,postSuccessUpdate);
      $location.hash('error');
      $anchorScroll();
 }

我不确定这是否有效,因为在我的环境中它可以正常工作。