whole_func_string: function gatherElements () {
  
      var snapWrap = gatherSnapWrap();
  
      elements = {
        main:  $element[0],
        scrollContainer: $element[0].querySelector('.md-virtual-repeat-container'),
        scroller: $element[0].querySelector('.md-virtual-repeat-scroller'),
        ul:    $element.find('ul')[0],
        input: $element.find('input')[0],
        wrap:  snapWrap.wrap,
        snap:  snapWrap.snap,
        root:  document.body
      };
  
      elements.li   = elements.ul.getElementsByTagName('li');
      elements.$    = getAngularElements(elements);
  
      inputModelCtrl = elements.$.input.controller('ngModel');
    }
func_code_string: function gatherElements () {
  
      var snapWrap = gatherSnapWrap();
  
      elements = {
        main:  $element[0],
        scrollContainer: $element[0].querySelector('.md-virtual-repeat-container'),
        scroller: $element[0].querySelector('.md-virtual-repeat-scroller'),
        ul:    $element.find('ul')[0],
        input: $element.find('input')[0],
        wrap:  snapWrap.wrap,
        snap:  snapWrap.snap,
        root:  document.body
      };
  
      elements.li   = elements.ul.getElementsByTagName('li');
      elements.$    = getAngularElements(elements);
  
      inputModelCtrl = elements.$.input.controller('ngModel');
    }
func_documentation_string: Gathers all of the elements needed for this controller