我有一个 Angular 应用程序,我将一个空数组传递给 Angular-UI Bootstrap Modal。根据用户的选择,它可以填充或不填充项目,最多 1000 个对象。所有这些都显示在一个列表中,ng-repeat
.列表中的所有项目都是预先生成的,因此我无法异步检索它们,例如通过使用智能表等插件。当用户按确定按钮时,所有生成的值都返回到调用它controller
。从技术上讲,所有这些都已经存在,因为我通过引用传递$scope.items
:
resolve: {
items: function () {
return $scope.items;
}
}
但是当我按下取消按钮时,我正在通过调用$scope.items.length=0;
我的问题来擦除数组中的所有项目,这需要一段时间。在下面的 plunker 示例中,它几乎不明显,但在我的实际应用程序中,它更加明显和不可接受。
我的猜测是由于 Angular 的双向绑定,清理所有观察者需要时间,但我不知道如何解决这个问题,如果可以解决的话。
我的MCVE在这里:http://plnkr.co/edit/JwanDxBzh3a7ilEX58z8?p=preview
更新:尝试使用一次性暴饮暴食,在这里使用: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 它没有帮助。
好的,我是对的,我几乎和 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
位于此处的工作普伦克:http://plnkr.co/edit/XWi6Z0eCXveV58WJfpo6?p=preview