2013-02-20 16 views
5

sonra $ routeProvider almak için Bir rota eklemek için benim denetleyicilerinden birinde $ routeProvider erişmeye çalışıyorum. Bunu nasıl yaparım?Açısal: Nasıl app.config

function Cont($scope,$routeProvider) { 

}; 

Bu benim için çalışmıyor; Ben Error: Unknown provider: $routeProviderProvider <- $routeProvider

+3

Bu daha önce yanıtlandı. Http://stackoverflow.com/a/13173667/1620332 adresine bir göz atın. – jonc

+0

[Muhtemelen Angular.js'de rota tanımları nasıl ertelenebilir?] (Http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js) olası yinelenmesi –

+0

gerçekten [Angular.js'de rota tanımları nasıl ertelenir] (http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js), ancak bu soruyla ilgili güzel şey şu: Hata mesajı için bir web araması ile buraya ulaşabilirsiniz. – metamatt

cevap

6

$ routeProvider ve diğer sağlayıcılar yalnızca bir modül yapılandırma bloğuna enjekte edilebilir. Bir denetleyicinin içindeki $ routeProvider ile yapmak istediğiniz nedir?

+0

Açıklamak hoş olurdu * neden * sağlayıcılar yalnızca yapılandırma bloklarına enjekte edilebilir (bu, [Modül geliştiricileri kılavuzunun Modül Yükleme ve Bağımlılıklar bölümünde açıklanmıştır] (http://docs.angularjs.org/guide/modül)). – metamatt

1

Denetleyicide, $ route erişilebilir, ancak $ routeProvider değil. Belki de sadece, örneğin işlevini kopya çekebiliriz '' ve 'pathRegExp'

bakınız jsfiddle: http://jsfiddle.net/5FUQa/1/

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

Ayrıca bakınız: How to defer routes definition in Angular.js?