2

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 をまったく変更しないようにする方法はありますか?

4

3 に答える 3

0

次の手順を実行します。この後 $location.hash($scope.categoryHead); 追加

$anchorScroll();
$location.hash('');
$location.replace();
    

$location.replace() 関数は URL から「#」を削除します。

于 2016-12-21T12:39:02.407 に答える
0

次の手順を実行します。この後 $location.hash($scope.categoryHead); 追加

$anchorScroll();
$location.hash('');
$location.replace();

$location.replace() 関数は URL から「#」を削除します。

于 2016-12-21T13:35:23.367 に答える