当使用滤镜时,Angular会在ng-repeat中添加额外的dom元素

时间:2014-04-03 08:29:53

标签: angularjs

我最近将角度从1.1.5更新为1.2.14。

现在ng-repeats中的过滤器会产生一些意想不到的行为:

  1. ng-repeat正常呈现

  2. 在过滤器模型输入中输入文本:ng-repeat不过滤

  3. 从输入中删除文本,角度为ng-repeat添加额外的dom元素,基本上重复ng-repeat。绑定到ng-repeat的数组不会改变。

  4. 重复步骤2和3会导致添加更多元素

  5. 我试图在PLUNKR中重新创建它,它工作正常。知道是什么导致了这个吗?

    代码:

    <input type="text" data-ng-model="query" >
    
    <div class="default-add" data-ng-repeat="array in arrays.arrays | orderBy:'name' | filter:{name: query}">
        <div class="default-add-image">
           <h1>{{array.title}}</h1>
        </div>
    </div>
    

    数据是有效的json,我已经使用模拟数据进行了测试并且具有相同的错误。

    由于

2 个答案:

答案 0 :(得分:2)

从重复元素中删除NG-REPEAT并将其添加到父容器中解决了它。

答案 1 :(得分:0)

如果它在Plunker中正常运行,那么很可能问题出在你的代码中。这是自定义过滤器吗?如果是的话,我会开始寻找那里。如果没有,那么我会检查它是否在人工数据上正常工作(认为数据可能是问题)。如果这不起作用,请查看您的数据提供者。如果这样可行,那么请研究如何处理数据。

我怀疑这是Angular的错误。我最近从1.0.7迁移到1.2.x没有出现这样的问题(很少,但通过遵循Angular团队的迁移指南,很容易修复)。

希望有所帮助!

相关问题