AngularJS の locationhash() + $anchorScroll を使用して、コンテンツが Ajax 経由で読み込まれると、選択したページ要素をウィンドウの上部に移動します。
JS: コントローラーで:
$scope.scrollTo = function (location) {
//Scroll to category head
$scope.categoryHead = "grouptitle-" + location;
$location.hash($scope.categoryHead);
$anchorScroll($scope.categoryHead);
};
ディレクティブで:
.directive('onFinishRender', function ($timeout) {
return {
restrict: 'A',
link: function (scope, element, attr) {
var scroll;
if (scope.$last === true) {
$timeout(function () {
//Scroll category to top of page after list has completed render
scroll = scope.scrollTo(scope.category);
});
}
}
};
これにより、または類似の表示 URL が得られますがmysite.com/##grouptitle-2
、これは少し難解に見えます。このアンカーを構成して、ハッシュを 1 つだけ表示するか、アドレス バーの URL をまったく変更しないようにする方法はありますか?