Javascript ng如果需要500名观察者-性能

Javascript ng如果需要500名观察者-性能,javascript,angularjs,performance,angular-ng-if,Javascript,Angularjs,Performance,Angular Ng If,我有一个ng重复数据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> &l

我有一个ng重复数据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>


{{::data.label}


但从调试中我注意到这花费了我大约500名观察者。如果没有ng if或一个主要的JS香草函数,有什么明显的方法可以完成我尝试的任务吗?

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

您可以对ng应用单向绑定,如果这样可以减少更多的观察者


我同意@DoctorMick,过滤器将减少循环、观察者的数量,而且速度也会很快。但是,如果您有一些其他数据和图像,并且您希望显示这些数据,则无法解决您的问题。

为什么不在进行角度处理之前返回src不为null的数据?@zerohero我在重复标签和图像,有些标签没有附加图像。同样,通过操纵数据以获得src,可以轻松解决此问题(如果为空)指向1x1像素图像,甚至是占位符图像?如果您可以轻松地在数据中解决此问题,为什么要旋转500多个观察者?您的权利,我可能应该使用“不可见”图像占位符。thanksDoes
data.label.length
需要观察?否则,您可以使用
ng repeat=“data in::data”
如建议的那样。查看我更新的代码段。标签和图像顺序仍然需要匹配,-因此,如果我只是删除所有的空值,列表将不再具有相同的长度。我检查了代码段,看不出问题出在哪里,如果排除没有空值图像的代码段,也不会得到标签,因此不会有问题lem.如何检索/填充您的数据?