使用ng-if,ng-show,ng-switch的双ng-repeat或ng-repeat是否会造成流量过载? (Angularjs)

时间:2018-07-27 09:04:20

标签: angularjs angularjs-directive angularjs-ng-repeat

我正在使用angularjs制作项目。

要在浏览器中显示多深度json数据,我必须使用双ng-repeat

有些列表需要异常处理,因此我使用了ng-ifng-showng-switch。 (条件表达式是函数的返回值或只是作用域变量)

使用此选项时,ng-repeat会导致流量过载。

具体来说,一个循环被循环两次,或者进入一个无穷循环。 (条件语句中的console命令的结果继续出现。)

有人跟我有类似的经历吗?

<div ng-repeat="(key, value) in loopDatas" ng-show="conditional === true">
  <div>
      <div>{{value.valueName}}</div>        
  </div>    
  <div class="row" ng-switch="exceptionHandling(key)">
      <div ng-switch-when="A">
          <div ng-bind-html="getUIType(value)"></div>
      </div>
      <div ng-switch-when="B">
          <div ng-bind-html="getUIType(value)"></div>
      </div>
      <div ng-switch-when="C">
          <div ng-bind-html="getUIType(value)"></div>
      </div>        
      <div ng-switch-default ng-repeat='data in value.values'>
          <div ng-show='data.isInclude==true && visibleUIType(data) !== -1'>              
              <div bind-html-compile="getUIType(data)" ng-class="getCols(data)"></div>
          </div>
   </div>        
</div>

如果您有解决方案或我的代码错误,请提供解决方案。

1 个答案:

答案 0 :(得分:0)

也许您在想这是错误的方式。利用控制器中的所有这些逻辑来创建新阵列将更加方便和可管理。然后在html中对新数组进行简单的ng-repeat。