Javascript 角度范围使用

Javascript 角度范围使用,javascript,angularjs,angularjs-directive,angularjs-scope,Javascript,Angularjs,Angularjs Directive,Angularjs Scope,我是AngularJS的初学者 我正在研究一些专家的代码。 我想定制指令并学习一些东西 专家总是插入: this.scope = $scope; 在每个控制器的第一行 如果您以后总是使用$scope,则此语句的意义是什么?此指针指的是$scope,而不是控制器 这个 调用控制器构造函数时,这就是控制器 调用$scope对象上定义的函数时,这是“当 该函数被称为”。这可能(也可能不是!)是定义函数的$scope**因此,在函数内部,this和$scope可能不同 $scope 每个控制器都

我是AngularJS的初学者

我正在研究一些专家的代码。 我想定制指令并学习一些东西

专家总是插入:

this.scope = $scope;
在每个控制器的第一行


如果您以后总是使用
$scope
,则此语句的意义是什么?此
指针指的是
$scope
,而不是控制器

这个
  • 调用控制器构造函数时,这就是控制器
  • 调用$scope对象上定义的函数时,这是“当
    该函数被称为”。这可能(也可能不是!)是定义函数的$scope**因此,在函数内部,this和$scope可能不同
$scope
  • 每个控制器都有一个关联的$scope对象
  • 控制器(构造函数)函数负责在其关联的$scope上设置模型属性和函数/行为
  • 只有在这个$scope对象上定义的方法(以及父作用域对象,如果原型继承正在发挥作用)可以从HTML/视图访问。例如,从ng点击、过滤器等
来自

没有此

app.controller('MyCtrl', function($scope){
  $scope.doStuff = function(){
    //Really long function body
  };
});
var MyCtrl = function($scope){
  var _this = this;

  $scope.doStuff = function(){
    _this.doStuff();
  };
};

MyCtrl.prototype.doStuff = function(){
  //Really long function body
};

MyCtrl.$inject = ['$scope'];

app.controller('MyCtrl', MyCtrl);
使用此

app.controller('MyCtrl', function($scope){
  $scope.doStuff = function(){
    //Really long function body
  };
});
var MyCtrl = function($scope){
  var _this = this;

  $scope.doStuff = function(){
    _this.doStuff();
  };
};

MyCtrl.prototype.doStuff = function(){
  //Really long function body
};

MyCtrl.$inject = ['$scope'];

app.controller('MyCtrl', MyCtrl);

这意味着您的应用程序将操纵控制器实例。有时可以向您传递一个控制器实例:当使用“controller as”语法时,请参见(ctrl as exmpl)。另外,在为指令定义控制器时。我不知道用这种方式做事的好处,所以我将把它作为一个评论。谢谢你的全面回答。我将继续使用
$scope
,直到我真正需要
这个