我正在开发一个提交表单并从服务器获取结果的应用程序,然后是 HTML 表格视图。我的输入表单有点大,覆盖了整个屏幕。当表格出现时,我想在表格视图中自动向下滚动。我使用了来自 angularJs 的 $anchorScroll。但我无法达到我想要的结果。我还使用了 $timeout 来确保表是否已经存在,然后执行 $anchorScroll,但仍然没有成功。(基于此解决方案:使用 $location 和 $anchorScroll 将表格行滚动到视图中
听到是我的代码。
HTML
<div data-ng-controller="searchController as searchCtrl" id="scrollArea">
<form>
//HTML input elements
<div class="buttons">
<md-button class="md-primary md-raised" ng-click="searchCtrl.gotoTable('resultTable')">Start</md-button>
</div>
</form>
</div>
<!-- Smart Table for displaying result -->
<div class="rtable" ng-show = "searchCtrl.tableViewData.length > 0" id="resultTable">
//table content
</div>
控制器
angular.module('myApp')
.controller("searchController", function($log, searchService, $scope, $location, $anchorScroll, $timeout){
var self = this;
self.gotoTable = function(resultTable)
{
$timeout(function() {
$location.hash(resultTable);
$anchorScroll();
});
};
});
我不知道为什么它不起作用?
我需要在我的 CSS 中定义 id scrollArea 和 resultTable 吗?
任何帮助,将不胜感激。提前致谢。
更新
基于 Okazari 的解决方案,我尝试在我的 HTML 的最底部放置一个带有许多 br 标签的另一个 div。现在,当我刷新页面时,它会自动滚动到该 div 标签,而无需单击“开始”。这有点奇怪。我也试图覆盖
<div class="rtable" ng-show = "searchCtrl.tableViewData.length > 0" id="resultTable">
带有另一个 id = "resultTable" 的 div 标签的标签。但它仍然没有工作。