9

教えてください、どうすれば私のページのトップへの自動アップを無効にできますか? ハッシュ ナビを使用する場合:

<a href="#/index">Goto index</a>

私のページは一番上に表示されますが、AngularJS を使用する場合: Html:

<a ng-href="#/index">Goto index</a>

JS:

$routeProvider.
      when('/index', {
          template:'...',
          controller: 'RouteCtrl'
      })

私のページが上にスクロールしました。どうすれば無効にできますか?

4

3 に答える 3

23

hrefあなたのプレーンがスクロールせずにスクロールするのは少し奇妙だと思いますng-href、私はそれが逆だと思っていました...

しかし、解決策に。ハッシュの変更をスクロールするのはブラウザ次第であるため、通常、それを無効にするにはpreventDefault()、イベントをインターセプトしてから自分で場所を変更する必要があります。Angular を使用する場合、<a>要素の属性ディレクティブを定義するか、独自のaディレクティブを定義することができます。

を使用する場合ng-view、ビューの更新を伴うサービスに依存して$anchorScroll、Angular が既にイベントをインターセプトしているため、ブラウザーが通常行う動作をシミュレートします。$anchorScroll何もしない独自のものを提供することで、ビューの読み込み時のスクロールを防ぐことができます。

angular.module('yourModule', []).value('$anchorScroll', angular.noop);
于 2013-01-26T05:20:30.210 に答える
2

AngularJS のドキュメントに示されているように、これを行う適切な方法は次のとおりです。

angular.module('yourModule',[]).config( ['$anchorScrollProvider', 
    function($anchorScrollProvider) {
        $anchorScrollProvider.disableAutoScrolling();
    }]
);
于 2013-05-08T16:31:21.547 に答える
1

ちょうど試して

assessmentApp.run(['$anchorScroll', function($anchorScroll) {
    $anchorScroll = angular.noop;
}])
于 2015-04-18T12:58:01.763 に答える