angular.module('app').config(
['$controllerProvider', '$compileProvider', '$filterProvider', '$provide',
function($controllerProvider, $compileProvider, $filterProvider, $provide) {
app.controller = $controllerProvider.register;
app.directive = $compileProvider.directive;
app.filter = $filterProvider.register;
app.factory = $provide.factory;
app.service = $provide.service;
app.constant = $provide.constant;
app.value = $provide.value;
}
])
代码背景:在查阅 angular 懒加载 资料时遇到的
一般来说我们想注册controller是过这种方式的:
但是这个时候
ACtrl
还没有注册到Angular的内部,我们无法使用,只有程序启动后,Angular才会调用$controllerProvider.register
帮我们注册到Angular内部,上面的代码最终会被这样调用:楼主给的代码的意思就是将Angular的组件,指令等等的注册接口挂到app对象上。这样做有什么用呢?可以在应用程序启动之后任然可以添加功能,例如
程序启动之后我们在添加
BCtrl
这个时候
BCtrl
是没有办法使用的,应用程序都启动完毕了,不会在把BCtrl
注册到Angular内部了。但是换成这种方式就不一样了,BCtrl
依旧可以注册到Angular内部