Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.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/8/vim/5.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
Javascript 表达式在选中后已更改。第二期_Javascript_Angular - Fatal编程技术网

Javascript 表达式在选中后已更改。第二期

Javascript 表达式在选中后已更改。第二期,javascript,angular,Javascript,Angular,模板: <tbody> <tr> <td>{{getRand()}}</td> <td>{{getRand()}}</td> </tr> </tbody> getRand(){ return Math.floor(Math.random()*100); } Expression has changed after it was checked. Previous val

模板

<tbody>
  <tr>
    <td>{{getRand()}}</td>
    <td>{{getRand()}}</td>
  </tr>
</tbody>
getRand(){
  return Math.floor(Math.random()*100);
}
Expression has changed after it was checked. Previous value: '90'. Current value: '32'.
错误

<tbody>
  <tr>
    <td>{{getRand()}}</td>
    <td>{{getRand()}}</td>
  </tr>
</tbody>
getRand(){
  return Math.floor(Math.random()*100);
}
Expression has changed after it was checked. Previous value: '90'. Current value: '32'.

有人能解释为什么会发生这种错误吗?为什么我不能多次调用此方法?

是否打开了服务器端渲染


不确定角度,但在React上,如果您有服务器端渲染,渲染值将在客户端重新计算,并会引发一些错误/警告。

角度变化检测就是这样工作的

Angular中的更改检测算法在特定时间(某些事件)遍历组件树,以确定发生了哪些更改

然后根据模型更改和UI绑定更新UI

在开发模式下(查看和),此组件漫游执行两次,以确保更改后模型稳定。在您的情况下,用于绑定的函数并不是没有副作用的,因为每次调用该函数都会返回不同的值


根据经验,使用无副作用的绑定。

是否有服务器端渲染?这可能是使用angular cli实现其所有前端的原因。我猜消化周期注意到它被改变了,并且认为这是一个错误,因为某种原因。啊,我明白了。我如何为一个长度不确定的数组生成随机数而不触发副作用呢?这本身并不会破坏任何东西。但是假设您只想生成一次这个随机数,那么最好在某种数组中的控制器中执行,然后绑定到数组。