0

我是 Angular 的新手,正在实现一些需要大型 ng-repeat 循环的东西。然而,在循环中的所有事情中,我只展示了一件。我使用 ng-if 显示它(ng-if over ng-show 以便从 DOM 中删除所有其他元素)。我的问题是:如果我在 ng-if 语句不评估为 true 的元素中有大量数据,例如某些图像或非常大的表格,那么这些数据是否仍然由使用 ng- 访问页面的用户下载重复和 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>
4

1 回答 1

1

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

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

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

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

希望,你明白我的意思!

于 2015-02-12T11:54:46.270 回答