2013-02-20 8 views
5

ルートを追加するために、私のコントローラの1つで$ routeProviderにアクセスしようとしています。 どうすればいいですか?

function Cont($scope,$routeProvider) { 

}; 

これは私にとっては機能しません。私は得る:Error: Unknown provider: $routeProviderProvider <- $routeProvider

+3

これは以前に回答されています。 http://stackoverflow.com/a/13173667/1620332をご覧ください。 – jonc

+0

[Angular.jsで経路定義を延期する方法]の複製が可能ですか?(http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js) –

+0

便利な回答は、本当に[Angular.jsの経路定義を延期する方法](http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js)、この質問についての良い点は、エラーメッセージのWeb検索でここにアクセスできます。 – metamatt

答えて

6

$ routeProviderと他のプロバイダは、モジュールの設定ブロックにのみ注入することができます。コントローラ内の$ routeProviderで何をしたいのですか?

+0

なぜ*プロバイダーが設定ブロックにのみ注入できるのかを説明するといいでしょう(これは[Module developers 'guide]のModule Loading&Dependenciesセクションで説明されていると思います)(http://docs.angularjs.org/guide /モジュール))。 – metamatt

1

コントローラでは、$ routeにアクセスできますが、$ routeProviderはアクセスできません。たぶん、あなただけの、たとえば、機能をコピーすることができ、 '' と 'pathRegExp'

参照くださいjsfiddleは:http://jsfiddle.net/5FUQa/1/

function addRoute(path, route) { 
    //slightly modified 'when' function in angular-route.js 
    } 
    addRoute('/dynamic', { 
    templateUrl: 'dynamic.tpl.html' 
    }); 

も参照してください:How to defer routes definition in Angular.js?

関連する問題