ng-if成本500观察者 - 表现

时间:2016-04-21 12:03:21

标签: javascript angularjs performance angular-ng-if

我有重复重复数据。 - 一些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函数的任何明显的方法来实现我的尝试?

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

你可以在ng上应用单向绑定 - 如果这样你可以减少更少的观察者。

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