AngularJs何时重新计算绑定函数?
对不起,如果这个问题太愚蠢了。我是新来安格拉斯的 假设页面上有两个元素: 一个AngularJs何时重新计算绑定函数?,angularjs,Angularjs,对不起,如果这个问题太愚蠢了。我是新来安格拉斯的 假设页面上有两个元素: 一个输入texbox绑定到$scope的名称。另一个是绑定到$scope函数的,用于计算当前时间。此页面可在此plunker中找到 该函数只被调用一次。但是,如果我在文本框中输入一个值,该函数将立即启动。我不明白这两件事之间的关系。希望有人能在这里有所启发。视图必须显示getTime()返回的值 因此,它需要调用getTime(),以了解返回的内容 但是AngularJS不可能知道getTime()做什么。可能getTim
输入
texbox绑定到$scope
的名称
。另一个是绑定到$scope
函数的
,用于计算当前时间。此页面可在此plunker中找到
该函数只被调用一次。但是,如果我在文本框中输入一个值,该函数将立即启动。我不明白这两件事之间的关系。希望有人能在这里有所启发。视图必须显示
getTime()
返回的值
因此,它需要调用getTime()
,以了解返回的内容
但是AngularJS不可能知道getTime()
做什么。可能getTime()
会以相反的顺序返回文本框中输入的值。也许不是。它不可能知道
但是,它确实知道,当用户在输入字段中输入某些内容时,范围的某些值将被修改。因此,这可能会更改getTime()
计算并返回的值
因此,它再次调用getTime()
,以了解返回的值是否与以前不同,并在新值发生更改时显示新值
基本上就是这样。它实际上比这更复杂,因为改变作用域中的一个值会触发监视程序,而监视程序又会改变作用域中的其他值,等等。所以这个过程会重复多次,直到一切都稳定。这就是所谓的摘要循环。它最多可以运行10次迭代,然后失败并出现错误
所以,要回答你的问题:
AngularJs何时重新计算绑定函数
很多时间。每当应用程序中发生任何AngularJS事件(ng click、ng mouseenter、返回$http响应、触发的$interval等)时,以及每个事件多次发生 视图必须显示由
getTime()
返回的值
因此,它需要调用getTime()
,以了解返回的内容
但是AngularJS不可能知道getTime()
做什么。可能getTime()
会以相反的顺序返回文本框中输入的值。也许不是。它不可能知道
但是,它确实知道,当用户在输入字段中输入某些内容时,范围的某些值将被修改。因此,这可能会更改getTime()
计算并返回的值
因此,它再次调用getTime()
,以了解返回的值是否与以前不同,并在新值发生更改时显示新值
基本上就是这样。它实际上比这更复杂,因为改变作用域中的一个值会触发监视程序,而监视程序又会改变作用域中的其他值,等等。所以这个过程会重复多次,直到一切都稳定。这就是所谓的摘要循环。它最多可以运行10次迭代,然后失败并出现错误
所以,要回答你的问题:
AngularJs何时重新计算绑定函数
很多时间。每当应用程序中发生任何AngularJS事件(ng click、ng mouseenter、返回$http响应、触发的$interval等)时,以及每个事件多次发生
我不明白这两件事之间的关系。有希望地
有人可以在这里发光
当您有{{getTime()}}
时,您会指示AngularJS在每次需要重新计算页面时调用函数
这与渲染出类似于{{currentTime}
的范围变量完全相同;如果自上次计算cyklus以来,currentTime
在代码中发生了更改,例如通过$scope.currentTime=new Date()
更改,则新的时间戳也将呈现出来
所以这里没有魔法或错误,它按预期工作。您之所以注意到它,是因为时间总是在变化,并且每次重新呈现页面时都会调用getTime()
方法
我不明白这两件事之间的关系。有希望地
有人可以在这里发光
当您有{{getTime()}}
时,您会指示AngularJS在每次需要重新计算页面时调用函数
这与渲染出类似于{{currentTime}
的范围变量完全相同;如果自上次计算cyklus以来,currentTime
在代码中发生了更改,例如通过$scope.currentTime=new Date()
更改,则新的时间戳也将呈现出来
所以这里没有魔法或错误,它按预期工作。您之所以注意到它,是因为时间总是在变化,并且每次重新呈现页面时都会调用getTime()
方法
在编写阶段:
- 并在
控件上设置一个向下键侦听器 - 设置要通知的
更改getTime()
- 按下
键会导致浏览器在输入控件上发出'X'
事件向下键
- input指令捕获对输入值的更改,并调用
来更新AngularJS执行上下文中的应用程序模型('name=“X”')
- AngularJS应用
name='X'代码>到模型
- 循环开始了
- 列表执行
getTime()
- AngularJS退出执行上下文,执行上下文又退出
事件和JavaScript执行上下文keydown
- 浏览器使用更新的文本重新渲染视图
使现代化 如果目标是不断更新时间,请使用 角度模块(“应用程序”,[]) .控制员(“控制员”,f)
<body ng-controller="Controller">
<h1>{{message}}, {{name}}</h1>
<h2>{{getTime()}}</h2>
<input type = "text" ng-model = "name">
</body>
$scope.getTime = function(){
return new Date();
}