请求$ scope来欺骗BC控制器模块

时间:2014-09-08 02:31:31

标签: angularjs angularjs-directive commenting

在指令ngSwitch和FromController的源代码中,您可以看到以下注释:

// asks for $scope to fool the BC controller module

是什么样的作弊行为?为什么用它?

ngSwitch Source Line

    // asks for $scope to fool the BC controller module
    controller: ['$scope', function ngSwitchController() {
     this.cases = {};
    }] ...

FormController Soruce Line

//asks for $scope to fool the BC controller module
FormController.$inject = ['$element', '$attrs', '$scope', '$animate'];
function FormController(element, attrs, $scope, $animate) {  ...

1 个答案:

答案 0 :(得分:1)

BC controller moduleBackward Compatability的简写。

  

加载此模块以启用旧式控制器,其中控制器和范围混合在一起。

     

这个模块装饰了Angular的$ controller服务:

     
      
  • 如果给定的控制器不要求$ scope,则以旧方式实例化
  •   
  • 如果给定的控制器确实要求$ scope,则实例化被委托给默认的$ controller   服务。

         

    这也允许逐步迁移应用程序。

  •   

因此,默认的角度模块总是要求$scope引用,即使它们不打算使用它,也不要为BC实例化。