Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJs何时重新计算绑定函数?_Angularjs - Fatal编程技术网

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指令捕获对输入值的更改,并调用
    ('name=“X”')
    来更新AngularJS执行上下文中的应用程序模型
  • AngularJS应用
    name='X'到模型
  • 循环开始了
  • 列表执行
    getTime()
  • AngularJS退出执行上下文,执行上下文又退出
    keydown
    事件和JavaScript执行上下文
  • 浏览器使用更新的文本重新渲染视图
有关详细信息,请参阅


使现代化 如果目标是不断更新时间,请使用

角度模块(“应用程序”,[]) .控制员(“控制员”,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();
  }