AngularJS wait to compile/link/repeat until user clicks

I'm experiencing some performance issues on a medium-sized result set. The result set is a list of documents, each with a small array of properties (metadata like created, modified, tags, owner_name, etc.) that is hidden until the user clicks a show/hide button.

In the template, I'm using a lot of ng-shows, and when I comment all of these out, the performance improves dramatically, so I was wondering if there is a way to ask Angular not to compile any of this, not to render any of the ng-repeats until the user clicks the properties show/hide button. Or is there a more idiomatic way of going about this?

Update: actually, it isn't when I comment out the ng-shows, it seems to be when I comment out the entire block of html, making it seem like accessing properties of an object is the cause of the performance hit. Why?

Template:

 <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">&nbsp;</div>
 </div>