2017-06-01 9 views
1

ので、私はおそらくここに何かを明らかに不足しているんだけど、私はアイデアをよ:

私は、次のコードを持っている:

app.run(function ($rootScope, $location, $anchorScroll, $stateParams, $timeout, $anchorScrollProvider) { 
    $rootScope.$on('$stateChangeStart', 
     function(newRoute, oldRoute) { 
      $timeout(function() { 
        $anchorScrollProvider.disableAutoScrolling(); 
        $location.hash($stateParams.scrollTo); 
        $anchorScroll(); 
       }, 
       100); 
     }); 
}); 

を私は、$ anchorScrollProviderを追加しました、$ anchorScrollProviderは私に動作するはずです上記の意味ベースNGモジュールの一部であるように

Error: [$injector:unpr] Unknown provider: anchorScrollProviderProvider <- anchorScrollProvider 

は、ドキュメントを読んで、それが見えます:コードの今日、私は次のエラーを取得していますそれはなぜですか?

+0

anchorScrollProviderはconfigセクションで提供され、実行セクションで$ anchorScroll –

答えて

3

anchorScrollProviderは、disableAutoScrolling関数の動作を呼び出すためのconfigフェーズで注入できます。

anchorScrollProviderは、組み込みng-modulesの一部です。 $ anchorScrollProviderを使用して、$ location.hash()が変更されるたびに自動スクロールを無効にします。

一部のメソッドはコンフィグレーションフェーズのプロバイダに関連しており、アプリケーションのコンフィグレーション中に呼び出す必要があります。

設定フェーズでは、プロバイダは登録されていますが、まだ実行されていません。

app.config(function ($anchorScrollProvider) { 
     $anchorScrollProvider.disableAutoScrolling(); 
}) 

コードの残りの部分はrunメソッドで行うことができます

app.run(function ($rootScope, $location, $anchorScroll, $stateParams, $timeout) { 
    $rootScope.$on('$stateChangeStart', 
     function(newRoute, oldRoute) { 
      $timeout(function() { 

        $location.hash($stateParams.scrollTo); 
        $anchorScroll(); 
       }, 
       100); 
     }); 
}); 
+0

ああを試してみてください、それは理にかなって+固定の私エラー、詳しい説明をありがとう! – RandomUs1r

関連する問題