初始化变量一次以防止“达到 10 $digest() 迭代”

2024-01-05

我正在对控制器中声明的函数返回的列表执行 ng-repeat,并且收到“已达到 10 $digest() 迭代。正在中止!”信息。

<div ng-repeat element in list()></div>

功能:

MyCtrl = ($scope)->
    ...
    $scope.list = ->
        list = {}
        for e in someArray
            ....    #adding stuff to list
        list
    ...

我发现问题是$scope.list()函数被调用多次,每次调用本地函数list变量被重新分配,因此 Angular 每次都会看到不同的对象,并且 ngRepeat 元素被重新绘制。我怎样才能避免这种情况?


每个 $digest 的角度表达式至少被评估两次,并且 $digest 可以一次运行 10 次(当绑定需要“刷新”时)。这意味着表达式将被重新计算多次。 这是 Angular 的常见陷阱之一。因此,您需要确保不要直接在表达式中调用函数。相反,让函数在控制器内部执行一次,然后在表达式中使用函数结果:

function MyCtrl($scope){

  function makeList(){
    var list = [];
    // do some logic to generate a list
    return list;
  };

  $scope.list = makeList();
}
<div ng-repeat="element in list"></div>

万一你have直接调用范围方法而不是确保方法是幂等的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

初始化变量一次以防止“达到 10 $digest() 迭代” 的相关文章

  • Protractor Internet Explorer 缓慢

    我一直在尝试让 Internet Explorer 11 在 Protractor 下运行 以完成我为新的 AngularJS 项目进行的一套测试 我在 Windows 7 64 位下运行 并已下载并安装了 64 位的 Selenium I
  • 在 ngSelect 中设置默认值

    我有一个 ng Select 其中有一些选项
  • 如何克隆 Angular UI 树中的节点?

    如何克隆 Angular UI 树中所有子节点的节点 现在我使用事件点击 ng click newSubItem this where newSubItem是函数 scope newSubItem function scope var no
  • karma.conf.js 未捕获引用错误:谷歌未定义

    当我尝试运行 karma 测试运行程序时 我从我的一个文件中收到如下错误 说我的库 google 未定义 Chrome 36 0 1985 Mac OS X 10 9 4 ERROR Uncaught ReferenceError goog
  • 使用 angularjs 进行动态 url 路由

    我的代码中有类似的东西 ul p b item name b p 例如 我有 3 件商品 宝马 高尔夫和梅赛德斯 我想要一个包含每个项目名称的 url 例如 bmw 或 mercedes 并且所有 url 使用details html 来显
  • 角度2:语法错误:意外的标记<(...)

    我知道 这个问题已经被问过 但我找不到适合我的特定情况的解决方案 我无法理解错误的真正原因 我有一个运行良好的 angularjs2 应用程序 现在我想导入marked图书馆 我做了什么 npm install marked tsd ins
  • Yeoman“grunt 测试”在干净的项目上失败,“端口已在使用中”

    With 苹果操作系统 10 8 4 节点 0 10 12 npm 1 3 1 grunt cli 0 1 9 哟1 0 0 rc 1 凉亭0 9 2 电子邮件受保护 cdn cgi l email protection 我在清理时遇到以下
  • 找到每个元素的所有父元素

    我正在尝试创建一个面包屑而不使用 url 路由提供者 并且不使用 jQuery 我有一棵这样的树 Humans Trees Animals Cats Lions Dogs Terrier Bulldog Cocker Cars 我希望当我点
  • 选项卡集 $rootScope 范围未更新

    我的屏幕结构如下 UserExperienceScreen
  • AngularJS:如何通过 websocket 发送文件?

    我是 websocket 的新手 我被分配了一个现有的工作聊天模块 目前该模块仅向其他用户发送消息 我被要求集成用户可以互相发送 附件 的功能 供参考 我发现了这个链接 https stackoverflow com questions 1
  • 使用像 angularjs 这样的框架对可访问性有什么影响?

    我们的立场 我们正在推动网络可访问性 以便遵守管理公共 教育机构的某些法律 到目前为止 我们一直在确保 我们的布局是按逻辑顺序排列的 图像有alt 标签 但很快我们就意识到我们需要行动起来并认真思考这个问题 我们正在考虑什么 我们一直在关注
  • AngularJs:显示来自 git 或 Bower 的版本号

    我创建了一个 Angular 应用程序 我想在屏幕上显示应用程序的当前版本号 目前我已将其实现为常量 application constant constants VERSION 1 1 2 但这需要我在每个新版本上更新常量 我使用 Bow
  • 如何测试 AngularJS 指令

    我正在开发一个将使用 AngularJS 的 Rails 3 2 应用程序 我可以让 Angular 做我需要的事情 但我很难弄清楚如何测试我正在做的事情 我正在使用guard jasmine 使用 PhantomJS 运行 Jasmine
  • Angular 1 到 Angular 5(导入嵌套组件)

    Before 角度1 5 用户界面路由器 Now 角5 0 如何在像 Angular 1 5 这样的组件父组件中导入子组件 我从 Angular 5 开始制作教程 Heroes 但没有解释这个过渡 所有组件都导入到 app modole t
  • AngularJS 指令在元素完全加载之前运行

    我有一个附加到动态生成的指令 table 模板内的元素 该指令在 a 中操作该表的 DOMlink功能 问题是该指令在渲染表之前运行 通过评估ng repeat指令 那么表是空的 Question 如何确保该指令在表格完全呈现后运行 tab
  • ng-grid cellTemplate 不适用于包含的 CUSTOM_FILTERS

    当在列定义中包含 cellTemplate 时 如果该 cellTemplate 包含 CUSTOM FILTERS 则会导致 Angular 呕吐 错误 语法错误 标记 CUSTOM FILTERS 是从 CUSTOM FILTERS 开
  • AngularJS - 从 run 方法访问 ng-init 变量

    1 我在 ng init 中初始化了变量 例如 ng init password Mightybear 2 我想从 run方法访问它 例如 anguar module ngApp run function Access password h
  • 搜索引擎如何处理 AngularJS 应用程序?

    我发现 AngularJS 应用程序在搜索引擎和 SEO 方面存在两个问题 1 自定义标签会发生什么 搜索引擎会忽略这些标签中的全部内容吗 即假设我有
  • 页面路由不完全是我想要的

    我在下面的代码中使用 Angular Routing 将用户引导至新的注册表单 该应用程序的工作原理如下 用户看到一个网页 要求他们通过单击适当的按钮在 数字报价 或 屏幕报价 之间做出选择 单击该按钮后 它应该将其定向到另一个显示相应注册
  • Angular.js ng-repeat:x次迭代后打开/关闭元素

    我有一个简单的 ng repeat 正在进行 div class row fluid div class span4 img class thumbImg a href json piece systemName piece name a

随机推荐

  • 无法使用selenium webdriver + firefox下载PDF

    我有一个 selenium 脚本 作为其执行的一部分 需要下载 PDF 并且下载是必要的 因为稍后会使用 PDF 我已经使用配置文件首选项方法来下载文件 这在我用于开发的虚拟机上运行良好 但是当将脚本移动到实时服务器时 它似乎不想下载所需的
  • 应用程序因 EXC_BREAKPOINT 错误而崩溃

    我正在 Xcode 7 2 中制作一个应用程序 我有一个带有按钮的主菜单 该按钮有一个转到设置视图控制器的序列 设置视图控制器具有以下代码 每次我到达该视图控制器时 它都会因 EXC BREAKPOINT 错误而崩溃 有趣的是 这种情况只发
  • 如何修复调试中的 ClassNotFoundException: kotlinx.coroutines.debug.AgentPremain?

    我正在运行几个项目作为 Spring Boot 应用程序 其中一个项目特别无法启动并抛出 java lang ClassNotFoundException kotlinx coroutines debug AgentPremain at j
  • 最先进的 Java EE 调试和监控工具

    多年来我第一次深入研究 Java EE 我正在寻找有关 Java EE 调试和监视工具的建议 IDlike找到一个可以让我动态探索线程空间等的工具 我主要使用 Tomcat update 和 Java 5 老鼠 如果您无法使用VisualV
  • 选择表中除表标题行之外的行

    如何使用jquery选择html表格中除表格标题行之外的行 table thead tr th Foo th td Lorem td td Ipsum td tr thead tr th th tr table
  • 如何使用 angularjs 输入文本并渲染 html?

    我想将文本框绑定到 angularjs 变量 并让它在单独的 div 中输出渲染的 html I have div div
  • 我们可以将 Github mac 应用程序与 GitLab 一起使用吗?

    我喜欢 GitHub Mac 应用程序 我通过我的 GitHub 帐户使用它 我加入了一个 GitLab 项目 我想知道是否可以将 GitHub 应用程序与 GitLab 存储库一起使用 我找到了一个post https stackover
  • 作为特定复杂类型扩展的任何类型元素的 xsd 序列

    基本上 如果这是 NET 它会看起来像这样 ISomething string A get int B get var somethings new List
  • Canvas.drawArc() 工件

    我在自定义视图中在画布上绘制圆弧 如下所示 Paint and rectangle被定义在外部onDraw 并为了简单起见添加到其中 protected void onDraw Canvas canvas super onDraw canv
  • javascript: 有没有可以测试网速的JS?

    我将测试我的网站速度 主要是网络服务器延迟 总结一下我想要实现的目标 1 在我的网站上托管一个带有javascript的网页 http myweb com test speed html 2 我把这个网址给我的朋友 3 他们不需要做任何事情
  • 添加(不是合并!)两个行和列不相等的数据框

    我想有效地对两个数据框的条目进行求和 尽管不能保证数据框具有相同的维度或列名称 合并并不是我真正想要的 相反 我想创建一个输出对象 其中包含属于任一添加的数据帧的所有行名称和列名称 在该输出的每个位置 我想对计算值使用以下逻辑 如果行 列配
  • 如何在构建工件后运行脚本

    我正在使用 Idea 做一个小型 LeJOS 项目 一切都很好 除了我希望在编译工件后将准备好的 jar 直接传输到我的 EV3 程序块上 我有一个现成的脚本 我现在从命令行手动启动它 但是 嘿 这是21世纪了 如何让 Idea 在构建工件
  • 模拟私有财产

    假设我们有一个这样的类 class Whatever private var something false fun aMethod Int return if something 1 else 0 根据文档 http mockk io p
  • yii2 中文件未上传

    我想上传图像并将其保存到我的数据库中 这里 数据库中的字段名称是image path 当我尝试上传图像时 它显示错误 调用成员函数saveAs 在线上的非对象上 customer gt file gt saveAs uploads cust
  • EntityFrameworkCore:如何在用户第一次使用应用程序时初始化数据库并为其提供种子

    我使用 Microsoft Visual Studio 2015 和 EntityFrameworkCore 构建了一个项目 我手动播种了一些虚拟数据 并且正在开发我的解决方案 现在 我想将其部署在服务器中 但我遇到的问题是 第一次启动应用
  • java.sql.Timestamp 的 Vaadin 转换器

    我正在使用 PostgreSQL 数据库 时间戳列具有 java sql Timestamp 类 即使此类扩展了 java util Date 当我编辑 PopupDateFiels 时 我也会收到错误 无法将 java util Date
  • 关于 MPI_Reduce

    就一个问题 如果我使用函数 MPI Reduce 当这是一个动态数组时 只有根可以分配接收缓冲区 例如 int r 10 int yloc y yloc calloc r sizeof int for all processes if I
  • 如何在函数内使用 tabyl() 和两个变量?

    我正在制作两个包含大量变量的表 因此我希望编写使用 janitor 包中的 tabyl 的函数 并映射我感兴趣的变量 第一个函数工作正常 cars datasets mtcars first table function variable
  • 处理 .csv 中不需要的(独立)双引号

    我正在尝试使用 Python 的 csv 模块读取格式不正确的 csv 文件 凌乱的 CSV 看起来像这样 name age place date Jack 23 perth australia 12aug Jackie 44 delhi
  • 初始化变量一次以防止“达到 10 $digest() 迭代”

    我正在对控制器中声明的函数返回的列表执行 ng repeat 并且收到 已达到 10 digest 迭代 正在中止 信息 div div 功能 MyCtrl scope gt scope list gt list for e in some