在指令ngSwitch和FromController的源代码中,您可以看到以下注释:
// asks for $scope to fool the BC controller module
是什么样的作弊行为?为什么用它?
// asks for $scope to fool the BC controller module
controller: ['$scope', function ngSwitchController() {
this.cases = {};
}] ...
//asks for $scope to fool the BC controller module
FormController.$inject = ['$element', '$attrs', '$scope', '$animate'];
function FormController(element, attrs, $scope, $animate) { ...
答案 0 :(得分:1)
BC controller module是Backward Compatability
的简写。
加载此模块以启用旧式控制器,其中控制器和范围混合在一起。
这个模块装饰了Angular的$ controller服务:
- 如果给定的控制器不要求$ scope,则以旧方式实例化
如果给定的控制器确实要求$ scope,则实例化被委托给默认的$ controller 服务。
这也允许逐步迁移应用程序。
因此,默认的角度模块总是要求$scope
引用,即使它们不打算使用它,也不要为BC实例化。