角度范围用法
Angular Scope Usage
我是AngularJS的初学者。
我正在研究一位专家的一些代码。我想自定义指令并学习一些东西。
专家总是插入:
this.scope = $scope;
在每个控制器的第一行中。
如果以后总是使用$scope
,那么这句话有什么意义呢。
this
指针指的是$scope
而不是控制器。
这个
- 当调用控制器构造函数时,这就是控制器
- 当调用在$scope对象上定义的函数时,这是"当
函数被调用"。这可能是(也可能不是!)函数定义的$scope。**因此,在函数内部,This和$scope可能不相同
$scope
- 每个控制器都有一个关联的$scope对象
- 控制器(构造函数)函数负责在其关联的$scope上设置模型属性和函数/行为
- 只有在$scope对象上定义的方法(以及父作用域对象,如果原型继承正在发挥作用)才能从HTML/视图访问。例如,从ng点击、过滤器等
Mark Rajcok提供,摘自AngularJS控制器中的"this"和$scope如何工作
不带this
app.controller('MyCtrl', function($scope){
$scope.doStuff = function(){
//Really long function body
};
});
带有this
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);
相关文章:
- 正在全局范围中查找JavaScript函数
- 如何通过数组更新角度子范围
- 如何使用ngrepeat和双向绑定获得指令的隔离范围
- HTML范围:动态设置值属性
- "实例范围”;TypeScript类的getter/setter
- jquery日期选择器年份范围默认值
- Jpgraph:如何手动设置X轴和Y轴的范围
- 在对象数组中查找多个值的d3范围
- 动态加载angularjs并生成控制器和范围
- 如何通过谷歌应用程序脚本从谷歌文档中的位置确定命名范围
- 在Materialize Calendar中设置年份范围
- 在MVVM视图模型中处理应用程序范围的元素
- setInterval游戏循环的范围问题
- AngularJS获取范围中的选定项目
- 从指定范围创建字符数组
- ES6是否引入了一种机制来生成块范围的函数语句(而不是表达式)
- Angularjs无法将单选按钮与嵌套范围内的模型绑定
- ngDialog-弹出窗口未更新范围变量
- 如何使用D3生成特定范围内的随机颜色
- 角度范围用法