为什么angularjs不必要地在每次输入更改时调用控制器函数以及如何停止该行为?

 權yzq 发布于 2023-02-06 12:00

下面是一个非常简单的TODO应用程序构建与angularjs.

它到目前为止工作正常,但我的问题是angularjs继续在输入字段中调用evry键击上的"剩余"函数!! 下面的代码有什么问题吗?





    
    



    

TODO:

{{remaining()}} of {{todos.length}} remaining [ archive ]
  • {{todo.text}}

dtabuenc.. 5

这是标准的角度行为.对模型或任何其他绑定或角度事件的任何更改,它将执行在示波器上设置的所有手表.这称为摘要周期,通常由$ scope触发.$ apply().这就是为什么不对从视图中的绑定表达式调用的函数进行任何繁重计算是非常重要的.

通常在具有对长列表进行某些计算或过滤的函数时会发生性能问题.如果这是一个问题,解决方案是在集合上设置监视,并仅在集合更改时将计算属性更新为范围中的separat变量.在您的示例中,这将防止在不相关的输入发生更改的情况下重新计算剩余项目.

1 个回答
  • 这是标准的角度行为.对模型或任何其他绑定或角度事件的任何更改,它将执行在示波器上设置的所有手表.这称为摘要周期,通常由$ scope触发.$ apply().这就是为什么不对从视图中的绑定表达式调用的函数进行任何繁重计算是非常重要的.

    通常在具有对长列表进行某些计算或过滤的函数时会发生性能问题.如果这是一个问题,解决方案是在集合上设置监视,并仅在集合更改时将计算属性更新为范围中的separat变量.在您的示例中,这将防止在不相关的输入发生更改的情况下重新计算剩余项目.

    2023-02-06 12:02 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有