关于AngularJS中数据绑定的疑问
Doubts about data binding in AngularJS
我正在用它做我的第一个应用程序来学习AngularJS。到目前为止,一切都很好,我很兴奋:)
但是现在我有一个console.log,这完全让我困惑,我开始认为我完全错过了一些东西。
我有一个简单的标签绑定到控制器:
<h2 ng-controller='HeaderController' ng-show='data.actualSection > 0'>
{{titleForSection()}}
</h2>
控制器非常简单:
uxctModule.controller ('HeaderController', function ($scope, ModelData){
$scope.data = ModelData;
$scope.titleForSection = function () {
console.log ("RETURNING IT");
return ("I SHOULD RETURN YOU SOMETHING");
}
});
真正让我困惑的是,我注意到每次模型中发生变化时,函数都会被触发。控制器如何在没有$watch的情况下持续执行函数?
angular中的数据绑定是通过一个摘要循环完成的,这意味着angular会一遍又一遍地循环检查是否有变化,对于绑定到函数上的函数,必须对其进行求值以查找变化。
这就是为什么将UI绑定到函数的结果通常不是一个好主意。相反,你应该这样做:
标记:
<h2 ng-controller='HeaderController' ng-show='data.actualSection > 0'>
{{sectionTitle}}
</h2>
控制器:
$scope.sectionTitle = 'I SHOULD RETURN YOU SOMETHING';
//and update it dynamically
$scope.funcToUpdateTitle = function(newTitle){
$scope.sectionTitle = newTitle;
};
实际上,在angularJS中,所有与视图相关的函数都将在以这种方式调用摘要循环时被调用,因为你已经在HTML中调用了titleForSection()
,所以当HTML中发生事件时,导致函数被执行。
希望有帮助!
相关文章:
- OnsenUI AngularJS数据绑定无法正常工作
- 使用AngularJs数据绑定的三元运算符显示图像
- 如何在angularjs中检查Kendo树视图数据绑定事件
- AngularJS数据绑定中断ngRepeat+奇怪行为
- 使用大括号的 Internet Explorer 上的 AngularJS 数据绑定问题
- AngularJS -- 创建自定义数据绑定和 ng-repeat
- Angularjs和Jquery日期选择器数据绑定
- AngularJS数据绑定与KnockoutJS数据绑定
- angularJS单向数据绑定和模型编辑与ng重复
- Angularjs 1.3+单向与双向数据绑定
- 数据绑定在带有输入标签的 AngularJS 中不起作用
- AngularJS:将数据绑定到动态创建的 HTML
- 数据绑定在特定情况下不起作用(AngularJS)
- C3 中的双向数据绑定.js AngularJS 中的双向数据绑定
- Angularjs 双向数据绑定不起作用;$watch也不起作用
- AngularJS:双向数据绑定 - 带有ng重复的指令 - 不起作用
- 使用 D3js 时,带有 DOM 的 AngularJS 数据绑定不起作用
- AngularJS 数据绑定不会动态更新内容
- NodeJS与AngularJS,所需的HTML文件不是跨控制器的数据绑定全局变量
- AngularJS 2 - 内部属性数据绑定 - 异常:类型错误:无法读取未定义的属性