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