code: function(element, link) {
        // Normalize the link parameter
        if(angular.isFunction(link)) {
          link = { post: link };
        }
  
        var compiledContents;
        return {
          pre: (link && link.pre) ? link.pre : null,
          /**
           * Compiles and re-adds the contents
           */
          post: function(scope, element, attrs, trvw) {
            // Compile our template
            if(!compiledContents) {
              compiledContents = $compile(trvw.getNodeTpl());
            }
            // Add the compiled template
            compiledContents(scope, function(clone) {
              element.append(clone);
            });
  
            // Call the post-linking function, if any
            if(link && link.post) {
              link.post.apply(null, arguments);
            }
          }
        };
      }
docs: Manually compiles the element, fixing the recursion loop.
  @param {Object} element The angular element or template
  @param {Function} link [optional] A post-link function, or an object with function(s) registered via pre and post properties.
  @returns An object containing the linking functions.