我正在查看the tutorial here(下面转载的代码),但此问题适用于任何Angular应用。
问题是:当我要么编写Angular应用程序或者查看其他人时,我会经常看到使用的变量似乎没有在任何地方声明。他们似乎无处不在,引起很多困惑。当然,这些变量最终是创建应用程序时指定的依赖项中的工厂,服务,常量等。
例如:
angular.module('myApp', ['ngRoute'])
.config(function($routeProvider) {
$routeProvider.when('/', {
controller: 'WelcomeController',
template: 'views/welcome.html'
});
})
.config(function(ConnectionProvider) {
ConnectionProvider.setApiKey('SOME_API_KEY');
})
在地球上,在大型应用中,我是否知道$routeProvider
来自ngRoute
,或ConnectionProvider
来自哪里?另外,另一方面,有没有办法快速了解哪些工厂和服务可以从依赖项中使用?
答案 0 :(得分:0)
Angular有一个内部模块ng
,在引导时会在模块堆栈的顶部进行初始化。在此ng
模块中,注册了内部指令/控制器/服务。但是,您无法将此信息视为Angular将其保留为私有属性cacheProvider
。最好的方法是阅读源代码。
对于您自己的模块。你可以通过angular.module('yourModule')._invokeQueue
获得更多信息,你定义的所有内容都带有后缀provider