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

Is content generated by ng-repeat and hidden by ng-if loaded before being removed?

我是 Angular 的新手,正在实施需要大型 ng-repeat 循环的功能。然而,在循环中的所有内容中,我只展示了一个。我使用 ng-if 显示它(ng-if over ng-show 以便从 DOM 中删除所有其他元素)。我的问题是:如果我在元素中有大量数据 whos ng-if statements don't evaluate to true,例如一些图像或非常大的 tables,访问带有 ng-repeat 和 ng-if 语句的页面?即如果我让我的 ng-repeat 重复 10 次并且每次生成一个包含 100,000 行 table 的 div,即使只有一个 table 通过使用 ng- 显示如果,所有其他 table 是否都由用户评估并因此下载?这是为了带宽。

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

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

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

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

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

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

希望你明白我的意思!