我在中型结果集上遇到了一些性能问题。结果集是一个文档列表,每个文档都包含一小组属性(元数据,如创建,修改,标签,所有者名称等),在用户单击显示/隐藏按钮之前,这些属性将被隐藏。
在模板中,我使用了很多ng-show
s,当我评论所有这些时,性能得到了显着提升,所以我想知道是否有办法让Angular不要编译其中任何一个,在用户点击属性显示/隐藏按钮之前不呈现任何重复重复。还是有更惯用的方式来解决这个问题?
更新:实际上,当我发表评论ng-show
时,它似乎就是当我注释掉整个html块时,让它看起来像访问属性对象是性能受损的原因。为什么呢?
模板:
<div class="property" ng-show="property.display && property.value && property.viewable" ng-repeat="property in item.properties()">
<span class="property-name">{{property.external}}:</span>
<span class="property-value" ng-show="property.type == 'string' || property.type == 'integer' || property.type == 'float'">
<span ng-hide="property.edit">{{property.value}}</span>
<span ng-show="property.edit">
<input name="{{property.internal}}" id="{{property.internal}}{{item.id()}}" />
<span class="edit-button"><a ng-click="simpleUpdate(item, property)">save</a></span>
<span class="edit-button"><a ng-click="editProperty(item, property)">cancel</a></span>
</span>
<span class="edit-button" ng-show="property.editable && !property.edit"><a ng-click="editProperty(item, property)">edit</a></span>
</span>
<span class="property-value" ng-show="property.type == 'stringArray'">
<span ng-hide="property.edit">{{property.value | join:', '}}</span>
<span ng-show="property.edit">
<textarea name="{{property.internal}}" id="{{property.internal}}{{item.id()}}" class="keywords" rows="1" cols="80"></textarea>
<span class="edit-button"><a ng-click="simpleUpdate(item, property)">save</a></span>
<span class="edit-button"><a ng-click="editProperty(item, property)">cancel</a></span>
</span>
<span class="edit-button" ng-show="property.editable && !property.edit"><a ng-click="editProperty(item, property)">edit</a></span>
</span>
<div class="clearboth"> </div>
</div>