rootElementProvider
rootElementProvider是从哪来的,我们先来看段源码中的话:
1 | /* |
我们回到bootstrap函数中一探究竟:
bootstrap
1 | function bootstrap(element, modules, config) { |
调用了$provide的value方法
$provide.value
1 | //用个valueFn包装下,再调用factory方法 |
$provide.factory
1 | function factory(name, factoryFn, enforce) { |
$provide.provider
最终调用provider方法,provider后缀为1
2
3
4
5
6
7
8
9
10
11
12
13```js
function provider(name, provider_) {
assertNotHasOwnProperty(name, 'service');
if (isFunction(provider_) || isArray(provider_)) {
provider_ = providerInjector.instantiate(provider_);
}
//没有定义$get函数会报错
if (!provider_.$get) {
throw $injectorMinErr('pget', "Provider '{0}' must define $get factory method.", name);
}
return providerCache[name + providerSuffix] = provider_;
}