ng-if 花费 500 个观察者 - 性能

ng-if cost 500 watchers - performance

我有一个 ng repeat 重复数据。 - data.image(src)部分为null,src=null的不再重复

我用一个简单的 ng-if 解决了它。

<div ng-repeat="data in data">

      <div class="ImageContainer">
        <img ng-src="{{::data.image}}" ng-if="data.image != null" />
      </div>
      <div class="LabelContainer">
        <p>
          {{::data.label}}
        </p>
      <div>
<div>

但是通过调试我注意到这让我损失了大约 500 个观察者。有什么明显的方法可以在没有 ng-if 或主要 JS vanilla 函数的情况下完成我正在尝试的事情吗?

您可以过滤控制器中的列表,这样您就有了一种方法,其中 returns 图像 属性 不为 null 的集合中的所有项目,并将您的重复绑定到该函数.

您可以在 ng 上应用一种绑定方式,如果那样的话您可以减少更多观察者。

我同意@DoctorMick 的观点,过滤器将减少循环、观察者的数量,而且速度也会很快。但是如果你有一些其他数据和图像并且你想显示这些数据那么它不会解决你的目的。