当前位置: 首页 > 面试题库 >

ng-repeat中的角度无限$ digest循环

丌官哲彦
2023-03-14
问题内容

我想在ng-repeat属性中调用函数,这是我的代码

示例plnkr

html

<body ng-controller="mainCtrl">
  <div ng-repeat='item in getGroupedRange() track by item.id'>
    <span>{{item.val}}</span>
    <span>{{item.abs}}</span>
    <span>{{item.rel}}</span>
    <span>{{item.cum}}</span>
  </div>
</body>

js

$scope.getGroupedRange = function() {
    return [
      {
        val: 1,
        abs: 1,
        rel: 1,
        cum: 1,
        id: 123456
      }
    ];
  };

当我打开控制台时,我注意到了错误

10 $digest() iterations reached. Aborting!
Watchers fired in the last 5 iterations: [[{"msg":"fn: function (c,d,e,f){e=a(c,d,e,f);return b(e,c,d)}","newVal":9,"oldVal":8}],[{"msg":"fn: function (c,d,e,f){e=a(c,d,e,f);return b(e,c,d)}","newVal":10,"oldVal":9}],[{"msg":"fn: function (c,d,e,f){e=a(c,d,e,f);return b(e,c,d)}","newVal":11,"oldVal":10}],[{"msg":"fn: function (c,d,e,f){e=a(c,d,e,f);return b(e,c,d)}","newVal":12,"oldVal":11}],[{"msg":"fn: function (c,d,e,f){e=a(c,d,e,f);return b(e,c,d)}","newVal":13,"oldVal":12}]]

我的代码的主要目标是在ng-repeat中使用函数来计算每个事件循环中的数据


问题答案:

找到了解决方案

  $scope.prev = null;
  $scope.getGroupedRange = function() {
    var data = [{
      val: 1,
      abs: 1,
      rel: 1,
      cum: 1,
      id: 123456
    }];
    if (angular.equals($scope.prev, data)) {
      return $scope.prev;
    }
    $scope.prev = data;
    return data;
  };


 类似资料:
  • 问题内容: 我正在尝试使用条件将项目分组为ng-repeat。 一个示例条件是将所有元素分组为同一小时。 数据: “时间”字段实际上是一个时间戳记(1399372207),但是使用准确的时间,示例输出将更易于理解。 我正在使用ng-repeat列出这些项目: 还尝试了: 有效输出为: 如果没有针对我的问题的简单解决方案,我的最后选择是将数据分组,然后将其分配给ng-repeat中使用的作用域变量。

  • 问题内容: 我有一个JSON对象,表示为: 我需要在 第二 层上做一个中继器,列出“虚假”数字。 我已经知道如何获得最高水平 但是我不清楚循环降级的顺序。例如,这是错误的: 我也知道如何 嵌套 中继器来实现这一点,但是在这种情况下,我根本不需要显示顶层。 澄清说明 这里的目标是有一个带有4个“伪”数字的列表(每个包裹有2个,顺序中有2个包裹)。 问题答案: 大量搜索不错的简单解决方案以进行动态迭代

  • 问题内容: 我正在编写一个自定义Angular过滤器,该过滤器随机大写传递给它的输入。 这是代码: 我这样称呼它: 它可以工作,但是在我的控制台中,我看到了rootScope:infdig(无限摘要)循环。 我在理解为什么会发生这种情况以及如何解决此问题时遇到了一些麻烦。如果我理解正确,这是由于该函数调用了5个以上摘要操作。但是输入仅由过滤器调用一次,对吗? 任何帮助表示赞赏。 问题答案: 由于摘

  • 我在用量角器5.2.0(节点8.4.0,角度1.5)定位ng-repeat循环中的一个元素时遇到了麻烦。UI代码如下所示: 我的量角器conf文件如下所示:

  • 我有一个json,包含如下对象数组 在我看来,我想用ngFor呈现json,就像这样 你的名字叫什么? abc 定义 Ghi jkl

  • 问题内容: 有没有什么好方法可以使用angular过滤列表而不使用ng- repeat?我不想首先使用javascript绘制列表,但是之后我想使用angular对其进行过滤。 例: 我想使用搜索框来过滤现有的html。 (一般请不要使用ng-repeat或jQuery给出任何示例) 问题答案: 您可以编写一个简单的指令来处理显示/隐藏: 并以这种方式使用它: 使用指令有两个好处: 1)。您不必在