0

我有一个 Angular 应用程序,我将一个空数组传递给Angular-UI Bootstrap Modal。取决于用户的选择,它可能填充或不填充项目,最多 1000 个对象。所有这些我都显示在一个列表中ng-repeat。列表中的所有项目都是预先生成的,因此我无法异步检索它们,例如使用smart-table 之类的插件。当用户按下确定按钮时,所有生成的值都会返回到controller它被调用的位置。从技术上讲,所有这些都已经存在,因为我通过$scope.items引用传递:

resolve: {
        items: function () {
          return $scope.items;
        }
      }

但是当我按下取消$scope.items.length=0;按钮时,我会通过调用我需要一段时间的问题来擦除数组中的所有项目。在我下面的 plunker 示例中,它几乎不引人注意但很明显,但在我的实际应用中,它更加明显和不可接受。

我猜这是由于Angular的双向绑定,清理所有观察者需要一些时间,但我不知道如何解决这个问题,如果可以解决的话。

我在 plunker 的 MCVE:http://plnkr.co/edit/JwanDxBzh3a7ilEX58z8?p= preview

更新:尝试使用一次性 binging,plunker 在这里:http ://plnkr.co/edit/PjzHRYiuXFHE1M1Pap6U?p=preview

  <li ng-repeat="item in items">
                <a href="#"> {{ ::item | date:'yyyy-MM-dd' }}</a>
            </li>

如此处所述:https ://stackoverflow.com/a/18791503/947111它没有帮助。

4

1 回答 1

1

好的,我是对的,我几乎用 Angular就在那里,one-time binding我只是在错误的地方使用它,应该以ng-repeat这样的方式使用它:

 <li ng-repeat="item in ::items">
                    <a href="#"> {{::item | date:'yyyy-MM-dd' }}</a>
                </li>

感谢这个答案:https ://stackoverflow.com/a/23903690/947111

工作 plunker 位于此处:http ://plnkr.co/edit/XWi6Z0eCXveV58WJfpo6?p=preview

于 2016-02-03T19:51:11.493 回答