我是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>
答案 0 :(得分:1)
您实际上是在混合Web应用程序的两个部分,即服务器端代码和客户端角度代码。
您的问题的答案是肯定的,即无论您的ng-if
条件如何,都将从服务器下载整个数据。
由于您将在代码中的某个位置填充范围元素bars
中的数据,其中包含从服务器返回的所有数据,服务器不知道您在HTML中实现的条件数据。它取决于HTML代码,以显示基于ng-if
条件的可显示数据。
因此,您需要修改服务器代码,以便仅发送将要显示的数据量。这是节省带宽的方法。
希望,你明白了我的意思!