内容是否由ng-repeat生成并在被删除之前被ng-if加载隐藏?

时间:2015-02-12 11:26:17

标签: angularjs angularjs-ng-repeat angular-ng-if

我是Angular的新手,正在实现需要大量重复循环的东西。在循环中的所有东西中,我只展示了一个。我使用ng-if(ng-if over ng-show以便从DOM中删除所有其他元素)来显示它。我的问题是:如果我在元素内部有大量数据,而这些数据没有评估为真,例如一些图像或非常大的表,那么用户访问页面时仍然会下载数据。重复和ng-if语句?即如果我的ng-repeat重复10次并且每次生成包含100,000行表的div,即使只有一个表通过使用ng-if显示,所有其他表都被评估并由此下载用户?这符合带宽的利益。

我希望这是有道理的。为了便于说明,这是一个例子

<div ng-repeat="foo in bars">
    <div ng-if="foo.property == 1">
        {{ foo.veryBigTable }}
    </div>
</div>

1 个答案:

答案 0 :(得分:1)

您实际上是在混合Web应用程序的两个部分,即服务器端代码和客户端角度代码。

您的问题的答案是肯定的,即无论您的ng-if条件如何,都将从服务器下载整个数据。

由于您将在代码中的某个位置填充范围元素bars中的数据,其中包含从服务器返回的所有数据,服务器不知道您在HTML中实现的条件数据。它取决于HTML代码,以显示基于ng-if条件的可显示数据。

因此,您需要修改服务器代码,以便仅发送将要显示的数据量。这是节省带宽的方法。

希望,你明白了我的意思!